子流程.Popen需要帮助

2024-09-24 04:24:13 发布

您现在位置:Python中文网/ 问答频道 /正文

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

./Test -t -1

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

可惜我做不到。你知道吗

我试着这样:

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

请在这方面帮助我。你知道吗

敬礼 塔穆尔


Tags: 文件test命令log可执行文件output参数stdout
2条回答

有两件事可能会出错:

  1. Test -t -1可能正在写入stderr,而不是stdout。你知道吗
  2. output可能需要刷新或关闭缓冲区,然后才能启动 写入磁盘。你知道吗

尝试:

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

这将把stdout和stderr都写入output,并在with-套件结束时关闭(和刷新)output。你知道吗

试试这个:

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

相关问题 更多 >