subprocess.Popen需要帮助

时间:2011-10-29 18:56:43

标签: python ubuntu ipc

我需要使用subprocess.Popen执行命令。 我需要运行的命令是:

./Test -t -1

Test是一个可执行文件,而其他参数-t-1用于启用shell的输出(日志)。我想将输出写入日志文件。

不幸的是我无法做到。

我试过这样:

output = open("outputlog.log", "a")
subprocess.Popen(["./Test", "-t", "-1"], stdout = output)

请帮助我。

此致 Tamoor

2 个答案:

答案 0 :(得分:1)

试试这个:

output = open("outputlog.log", "a")
p = subprocess.Popen(["./Test", "-t", "-1"], stdout=subprocess.PIPE)
output.writelines(p.stdout.readlines())

答案 1 :(得分:0)

有两件事可能出错:

  1. Test -t -1可能正在写stderr,而不是stdout。
  2. 在缓冲区之前,可能需要刷新或关闭
  3. output 写入磁盘。
  4. 尝试:

    with open("outputlog.log", "a") as output:
        subprocess.Popen(["./Test", "-t", "-1"], stdout=output, stderr=output)
    

    这会将stdout和stderr写入output,并在output - 套件结束时关闭(和刷新)with