(视窗)
我写的调用程序SOX(子模块),如果你指定它这样做,其输出STDERR上的进步,一些Python代码。 我想从输出百分比状态。 如果我把它不能从Python脚本,它会立即启动,并具有光滑的进展,直到100%。
如果我把它从Python脚本,它持续了几秒钟,直到它开始,然后缓慢的输出和快速的输出之间交替。 虽然我读成炭炭有时闯出了一大块。 所以,我不明白,为什么在其他时间我可以看字符由一个越来越之一。 (它产生的数据15KiB在我的测试,顺便说一句。)
我测试用了mkvmerge和mkvextract相同。 他们输出的百分比了。 阅读STDOUT有光滑。
这是如此不可靠! 我怎样才能使SOX的标准错误流更流畅的阅读,也许防止在开始延迟?
我如何打电话阅读:
process = subprocess.Popen('sox_call_dummy.bat', stderr = subprocess.PIPE, stdout = subprocess.PIPE)
while True:
char = process.stderr.read(1).encode('string-escape')
sys.stdout.write(char)