Ven*_*tta 4 python linux subprocess
我正在运行以下代码(称之为batch.py)
for config in keystoneConfig:
cmdlist = generate_cmd_list(config)
print ' '.join(cmdlist)
subprocess.call(cmdlist)
Run Code Online (Sandbox Code Playgroud)
并将batch.py的输出重定向到另一个文件.即
./batch.py> output.txt
但我意识到所有输出都来自声明subprocess.call()之前print.为什么输出不同步?
gee*_*aur 10
Python是块缓冲它自己的输出而不是之前刷新它subprocess.call(),因为你将它的输出重定向到文件而不是控制台; 你需要强制行缓冲或禁用缓冲,或者在子进程调用之前手动刷新.