2017-02-19 67 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