如何在子进程python中创建和复制文件的内容
Posted
技术标签:
【中文标题】如何在子进程python中创建和复制文件的内容【英文标题】:How to create, and copy the contents of a file in subprocess python 【发布时间】:2015-05-04 21:18:51 【问题描述】:如何进行子进程调用以将文件(例如 hello.c
)的内容复制到文件 say 1.c
?
首先,我如何创建一个新文件,例如1.c
?我试过了
subprocess.call("touch", "1.c")
它给出了这个错误-
TypeError: bufsize 必须是整数
【问题讨论】:
我问你的问题......你到底为什么要这样做?只需使用内置的python机制来复制文件。 【参考方案1】:你需要传递一个参数列表,第二个参数是你传递字符串的缓冲区大小:
subprocess.check_call(["touch", "1.c"])
要在 python 中复制文件,您可以使用 shutil.copy:
from shutil import copy
copy("foo.c","bar.c")
如果你必须再次使用 subprocess 传递一个 args 列表:
subprocess.chexk_call(["cp", "a.c","b.c"])
如果您获得非零返回状态check_call
将引发CalledProcessError
。
【讨论】:
你应该默认使用check_call()
而不是call()
。 “错误永远不应该静默传递。除非显式静默。”以上是关于如何在子进程python中创建和复制文件的内容的主要内容,如果未能解决你的问题,请参考以下文章