如何将子流程调用结果导出到文本文件中?
- 内容介绍
- 文章标签
- 相关推荐
本文共计304个文字,预计阅读时间需要2分钟。
如何将子流程的输出写入文件,可以使用 `subprocess.call` 的 `stdout` 参数。需要传递 `None`,`subprocess.PIPE` 文件对象或文件描述符。默认值是 `None`,表示 `stdout` 来自父进程(即你的脚本)。
如果要将输出写入文件,可以使用stdout-argument of subprocess.call。
它需要None,subprocess.PIPE个文件对象或一个文件描述符。第一个是默认值,stdout是从父级(您的脚本)继承的。第二个允许您从一个命令/进程到另一个命令/进程。第三和第四项是您想要的,将输出写入文件。
您需要使用类似的文件打开文件,open然后将对象或文件描述符整数传递给call:
f = open("blah.txt", "w")subprocess.call(["/home/myuser/run.sh", "/tmp/ad_xml", "/tmp/video_xml"], stdout=f)
我猜测任何有效的类似文件的对象都可以工作,例如套接字(gasp :)),但我从未尝试过。
正如marcog在评论中提到的那样,您可能还希望重定向stderr,您可以使用将其重定向到与stdout相同的位置stderr=subprocess.STDOUT。上述任何一个值也可以使用,您可以重定向到其他位置。
本文共计304个文字,预计阅读时间需要2分钟。
如何将子流程的输出写入文件,可以使用 `subprocess.call` 的 `stdout` 参数。需要传递 `None`,`subprocess.PIPE` 文件对象或文件描述符。默认值是 `None`,表示 `stdout` 来自父进程(即你的脚本)。
如果要将输出写入文件,可以使用stdout-argument of subprocess.call。
它需要None,subprocess.PIPE个文件对象或一个文件描述符。第一个是默认值,stdout是从父级(您的脚本)继承的。第二个允许您从一个命令/进程到另一个命令/进程。第三和第四项是您想要的,将输出写入文件。
您需要使用类似的文件打开文件,open然后将对象或文件描述符整数传递给call:
f = open("blah.txt", "w")subprocess.call(["/home/myuser/run.sh", "/tmp/ad_xml", "/tmp/video_xml"], stdout=f)
我猜测任何有效的类似文件的对象都可以工作,例如套接字(gasp :)),但我从未尝试过。
正如marcog在评论中提到的那样,您可能还希望重定向stderr,您可以使用将其重定向到与stdout相同的位置stderr=subprocess.STDOUT。上述任何一个值也可以使用,您可以重定向到其他位置。

