2017-02-19 61 views
0

我想在Windows主機上運行python腳本。腳本生成的數據應該傳送到另一個進程。這個過程期望Unix風格的行結束。我如何控制腳本的輸出結束?在二進制模式下重新打開stdout?

腳本摘錄:

print "blob" 
print "mark: %d" & mark 
print "data %d" % os.path.getsize(localPath) 
    with open(localPath, "rb") as f: 
     print f.read() 

這應該產生:

"blob\nmark: 0\n" 

腳本生成的文本二進制輸出。因此,以後不能將結果轉換爲dos2unix程序。

我可以在二進制模式下重新打開stdout以避免\ n - > \ r \ n轉換嗎?

回答

1

可以通過傳遞python命令行參數來控制輸出:-u。這導致無緩衝輸出,並且跳過LF-> CRLF轉換

也有可能在爆炸行指定此:

#!/C/Python27/python -u