最近寫了幾個Python腳本,在用PRint輸出的時候,都有一個很討厭的問題,就是print的輸出被延遲了,什么情況呢,類似這樣
1 import os
2 print ‘first print
3 os.system('./second-print.sh')
在second-print.sh中,也會有一些打印信息輸出到控制臺
正常情況下,first print要先于second print出現再控制臺,但實際的情況卻是相反的。
這是個小問題,卻非常的煩人,今天終于不能忍受,google了一番,發現很多人都有同樣的痛苦,痛苦的根源是python默認啟用了stdout緩沖,解決的辦法有兩種
一種辦法是每次print后,都調用stdout flush(),把緩沖區打印出來,這個辦法比較麻煩,要重載stdout,不推薦。
最簡單的方法是用命令行參數-u啟動python,禁用stdout緩沖
比如腳本是build-native.py,運行 python -u build-native.py就不會出現print延遲問題了
新聞熱點
疑難解答