以二进制模式重新打开stdout?

时间:2017-02-19 17:24:22

标签: python-2.7

我想在Windows主机上运行python脚本。脚本生成的数据应通过管道传输到另一个进程。这个过程需要Unix样式的行结尾。如何控制脚本的输出结尾?

脚本摘录:

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 个答案:

答案 0 :(得分:1)

可以通过传递python命令行参数来控制输出:-u。这会导致无缓冲输出,而会跳过LF - > CRLF转换

也可以在爆炸线中指定:

#!/C/Python27/python -u