我了解到,在Python中执行命令时,我应该使用子进程。 我想要实现的是通过ffmpeg对文件进行编码,并观察程序输出,直到文件完成。 Ffmpeg将进度记录到stderr。捕获子进程输出
如果我尝试这样:
child = subprocess.Popen(command, shell=True, stderr=subprocess.PIPE)
complete = False
while not complete:
stderr = child.communicate()
# Get progress
print "Progress here later"
if child.poll() is not None:
complete = True
time.sleep(2)
的PROGRAMM不会继续调用child.communicate后(),并等待命令完成。有没有其他的方式来跟踪输出?
相关:[Python:从subprocess.communicate()读取流输入)(http://stackoverflow.com/q/2715847/4279) – jfs 2015-06-13 13:54:05