4
我有一個簡單的腳本,它打印一些信息到控制檯,怪異的行爲
#!/usr/bin/python
import sys
print >>sys.stdout, "1 stdout"
print >>sys.stderr, "2 stderr"
正常順序,
[[email protected]:codes]$ ./x.py
1 stdout
2 stderr
[[email protected]:codes]$ ./x.py 2>&1
1 stdout
2 stderr
錯誤的順序輸出,
[[email protected]:codes]$ ./x.py &>x.txt
[[email protected]:codes]$ cat x.txt
2 stderr
1 stdout
[[email protected]:codes]$ ./x.py 2>&1 | tee x.log
2 stderr
1 stdout
看來加入sys.stdout.flush()
可以解決問題,有沒有辦法強制消息序列(要紅色直接輸出/錯誤到一個文件)而不改變腳本?
很酷,我永遠不知道有這樣的選擇。謝謝! – 2012-03-08 15:01:53