Python:为什么要打印语句和subprocess.call()输出不同步?

2024-09-30 22:15:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在运行以下代码(称之为批处理.py)在

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

以及重定向批处理.py到另一个文件。i、 e

./batch.py > output.txt

但是我意识到subprocess.call()的所有输出都在print语句之前。为什么输出不同步?在


Tags: 代码inpycmdconfigforcall重定向
1条回答
网友
1楼 · 发布于 2024-09-30 22:15:58

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

相关问题 更多 >