[英]Python: why print statements and subprocess.call() output are out of sync?
我正在運行以下代碼(稱為batch.py)
for config in keystoneConfig:
cmdlist = generate_cmd_list(config)
print ' '.join(cmdlist)
subprocess.call(cmdlist)
並將 batch.py 的輸出重定向到另一個文件。 IE
./batch.py > 輸出.txt
但我意識到subprocess.call()
所有輸出都在print
語句之前。 為什么輸出不同步?
Python 正在塊緩沖它自己的輸出,而不是在subprocess.call()
之前刷新它,因為您將其輸出重定向到文件而不是控制台; 您需要強制行緩沖或禁用緩沖,或在子進程調用之前手動刷新。
在打印之后和進行子進程調用之前使用sys.stdout.flush()
進行刷新。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.