我需要使用subprocess.Popen
执行命令。
我需要运行的命令是:
./Test -t -1
Test是一个可执行文件,而其他参数-t
和-1
用于启用shell的输出(日志)。我想将输出写入日志文件。
不幸的是我无法做到。
我试过这样:
output = open("outputlog.log", "a")
subprocess.Popen(["./Test", "-t", "-1"], stdout = output)
请帮助我。
此致 Tamoor
答案 0 :(得分:1)
试试这个:
output = open("outputlog.log", "a")
p = subprocess.Popen(["./Test", "-t", "-1"], stdout=subprocess.PIPE)
output.writelines(p.stdout.readlines())
答案 1 :(得分:0)
有两件事可能出错:
Test -t -1
可能正在写stderr,而不是stdout。output
写入磁盘。尝试:
with open("outputlog.log", "a") as output:
subprocess.Popen(["./Test", "-t", "-1"], stdout=output, stderr=output)
这会将stdout和stderr写入output
,并在output
- 套件结束时关闭(和刷新)with
。