python:运行外部程序并将输出直接输出到文件并等待完成

时间:2016-04-19 12:04:56

标签: python bash logging

我想从python运行外部程序,将输出(大量文本)重定向到日志文件并等待该程序完成。我知道我可以通过bash做到这一点:

tar

但是我怎么能用python做同样的事情呢?请注意,使用bash命令,我可以在程序运行时检查log_file。我也想在python中使用这个属性。

2 个答案:

答案 0 :(得分:2)

请参阅subprocess模块。

example

with open("log_file", "w") as log_file:
    subprocess.run(["my_external_program"], stdout=log_file, stderr=log_file)
print("done")

答案 1 :(得分:1)

Controlling a python script from another script

你可以查看上面的链接,确实是类似的问题。使用子进程或os.popen中的Popen可以检查实时。

使用简单的os.system("您的脚本> /tmp/mickey.log")也将运行该脚本,但它将等待执行该命令。

如果这可以解决您的问题,请告诉我。