我尝试使用此类代码将标准输出重定向到文件:
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
答案 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