【发布时间】:2013-06-18 02:22:08
【问题描述】:
我正在为 djv_converter 创建一个简单的 GUI:http://djv.sourceforge.net/documentation.html 它运行良好,但是当我使用 Popen 运行该应用程序时,我缺少一些来自该应用程序的反馈。
args = [djv_path, newout, "%smov" % moviename,"-speed", speed ,"-scale", scale, "-save", "quicktime", "quality", quality, "-save", "quicktime", "codec", codec, "-channel", channel]
child = subprocess.Popen(args,stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
通常应用程序会向控制台输出一些进度,我想用它来更新我的进度条。
问题是任何类型的标准输出都会在进程完成后发生。它看起来好像在创建子进程时冻结,然后在完成后解冻。我已经尝试了 communicate 和 child.stdout.read 并且发生了同样的事情。
我从一个从注册表调用的 bat 文件中运行我的 python 代码,所以我可以在我的右键菜单下找到它。 GUI 是用 PySide 编写的。
cmd窗口的弹出我也停不下来,不管是pythonw和.pyw文件还是修改过的.bat文件。
如果有人知道可能导致问题的原因,请告诉我:)
非常感谢, KK
【问题讨论】:
标签: python user-interface cmd pyside