子流程调用([“/home/myuser/run.sh”、“/tmp/ad_xml”、“/tmp/video_xml”])
现在我有一个我运行的脚本。当我运行它,它点击这一行,它开始打印东西,因为run.sh中有打印
我如何将其也传输到文本文件?(如有可能,也可打印)
如果要将输出写入文件,可以使用subprocess.call
的stdout参数
两者都需要
None
(默认情况下,stdout从父级(脚本)继承)子流程管道
(允许您从一个命令/流程管道到另一个命令/流程)- 文件对象或文件描述符(您希望将输出写入文件的内容)
您需要使用类似于open
的方法打开文件,并将对象或文件描述符整数传递给call
:
f=open(";blah.txt";,";w";)
子流程调用([";/home/myuser/run.sh";,";/tmp/ad\u xml";,";/tmp/video\u xml";],stdout=f)
我猜任何像对象这样的有效文件都可以工作,比如套接字(gasp:),但我从未尝试过
正如marcog在评论中提到的,您可能也想重定向stderr,您可以使用stderr=subprocess.stdout
将其重定向到与stdout相同的位置。上述任何一个值都可以工作,您可以重定向到不同的位置