子进程 cp 返回错误 - bufsize 必须是整数 [重复]
Posted
技术标签:
【中文标题】子进程 cp 返回错误 - bufsize 必须是整数 [重复]【英文标题】:Subprocess cp returns error - bufsize must be integer [duplicate] 【发布时间】:2016-03-13 09:23:12 【问题描述】:我正在尝试从一个目录复制到另一个目录,并同时通过调用 '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 <module>
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】:你有两个问题:
1 - subprocess.call()
需要 list
参数,而不是多个参数:
#wrong
subprocess.call('cp', in, out)
#right
subprocess.call(['cp', in, out])
2 - in
是 python 保留关键字,将其更改为 inp
:
#wrong
subprocess.call(['cp', in, out])
#right
subprocess.call(['cp', inp, out])
【讨论】:
@DanielHolden 什么奇怪的输出?顺便说一句,input()
是一个内置函数,所以使用类似inp
第一个错误很容易犯。以上是关于子进程 cp 返回错误 - bufsize 必须是整数 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
错误Python子进程调用复制文件。没有文件,失败,但返回1.为什么?
子进程 已安装 pre-removal 脚本 返回了错误号 1或2 与 子进程 已安装 post-installation 脚本 返回了错误号 1或2