【发布时间】:2016-03-18 01:49:29
【问题描述】:
我正在运行自己的脚本来启动 HandBrakeCLI。 HandBrake 需要几个小时才能完成工作。
我打算从cron启动这个脚本,所以脚本不会有真正的输出(我可以不时更新一个文件。)
HandBrake 可以告诉我它在运行时在终端的底线在做什么。
我正在使用 Popen 启动手刹。
如何在手刹运行时查看其输出以实时(接近实时)收集其状态?
这是我正在使用的命令:
command = ['HandBrakeCLI', '-i', long_source, '-o', long_target, '-f', 'mp4'] # + a bunch more
p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = p.communicate()
print out
print err
这可行,但我希望在执行期间从Popen 输出,而不是等到它完成后。
谢谢,马克。
PS。 Ubuntu 服务器 12.04
【问题讨论】:
-
你试过什么?在我看来,
subprocess.Popen将是完全正确的方法,所以如果没有看到错误消息,我不知道你为什么不能这样做。 -
这是我正在使用的命令:
p = subprocess.Popen(['HandBrakeCLI', '-i', long_source, '-o', long_target, '-f', 'mp4'..a bunch more ], stdout=subprocess.PIPE, stderr=subprocess.PIPE)out, err = p.communicate()print outprint err -
这行得通,但我想要 Popen 在执行期间的输出,而不是等到它完成之后。此评论部分的格式无效。
-
不要将代码放入 cmets,edit 你的问题。
-
如果您将
stdout=PIPE和stderr=PIPE和tail -F删除到您的Python 进程输出所在的文件会怎样?
标签: python-2.7 popen