当前位置:  开发笔记 > 编程语言 > 正文

子进程cp返回错误 - bufsize必须是整数

如何解决《子进程cp返回错误-bufsize必须是整数》经验,为你挑选了1个好方法。

我正在尝试从一个目录复制到另一个目录,并通过调用'cp'同时重命名它们,如下所示:

directories = ['/Users/Me/Folder1/File1.txt', '/Users/Me/Folder/File2.txt']
output = ['/Users/Me/Folder2/Hello.txt', 'Users/Me/Folder2/World.txt'] 
for in, out, in zip(directories, output):
    subprocess.call('cp', in, out)

但它返回:

 File "./test.py", line 33, in 
    subprocess.call('cp', in, out)
  File "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 522, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 659, in __init__
    raise TypeError("bufsize must be an integer")
TypeError: bufsize must be an integer

我究竟做错了什么?



1> Ayush..:
subprocess.call('cp', in, out)

in是一个python关键字.更好地inp用作变量名.还subprocess.call()需要一个list参数,而不是多个参数:

for inp, out, in zip(directories, output):
    subprocess.call(['cp', inp, out])


啊,是的,我忘了方括号。谢谢!
推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有