Python的:为什么打印报表subprocess.call()输出不同步?(Python: why

2019-09-16 16:01发布

我运行下面的一段代码(称之为batch.py​​)

for config in keystoneConfig: 
    cmdlist = generate_cmd_list(config)
    print ' '.join(cmdlist)
    subprocess.call(cmdlist)

并重定向batch.py​​的输出到另一个文件。 即

./batch.py​​> output.txt的

但我知道,从输出的所有subprocess.call()的前那张print语句。 为什么输出不同步?

Answer 1:

Python是块缓冲自己的输出,而不是之前刷新它subprocess.call()因为你重定向输出到文件而不是控制台; 你将需要强制行缓冲或禁用缓存,或手动刷新子进程调用之前。



文章来源: Python: why print statements and subprocess.call() output are out of sync?