如何将输出重定向到subprocess.Popen中的文件

时间:2014-07-28 13:28:05

标签: python stdout

我尝试使用此类代码将标准输出重定向到文件:

subprocess.Popen('my command', cwd='my path', shell=True, stdout=stdout.txt, stderr=stdout.txt)

但得到错误:NameError: name 'stdout' is not defined

我使用python版本2.5.2

2 个答案:

答案 0 :(得分:8)

首先打开文件,如果要记录所有输出/错误或使用a每次覆盖,请使用w追加:

with open("stdout.txt","a+") as stdout:
   subprocess.Popen('my command', cwd='my path', shell=True, stdout=stdout, stderr=stdout)

使用with会自动关闭您的文件。

答案 1 :(得分:1)

将文件描述符提供给stdout See doc