我可以使用subprocess.Popen调用FFmpeg并检索我需要的数据,因为它发生(为了获得进展),但仅限于控制台。我环顾四周,看到你无法获得“实时”数据when running with pythonw。然而,等到进程完成检索数据是没有意义的,因为我正在尝试围绕FFmpeg包装一个PyQT GUI,所以我可以有很好的进度条和诸如此类的东西。所以问题是,在使用pythonw时,你可以从子进程调用中检索“实时”数据吗?
我还没有尝试使用py2exe编译应用程序作为Windows应用程序,是否可以解决问题?
答案 0 :(得分:4)
process = subprocess.Popen(your_cmd, shell=true, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
count=0
while True:
buff = process.stdout.readline()
if buff == '':
count += 1
if buff == '' and process.poll() != None:
break
sys.stdout.write(buff)
process.wait()
答案 1 :(得分:0)
在调用subprocess.Popen时,请使用stdout=subprocess.PIPE
。然后,您将能够阅读流程的.stdout
。