有什么方法可以在Python 2.x中将二进制输出写入sys.stdout吗?在Python 3.x中,您可以仅使用sys.stdout.buffer(或分离stdout等),但是我找不到用于Python 2.5 / 2.6的任何解决方案。
编辑,解决方案:来自ChristopheD的链接,如下:
import sys
if sys.platform == "win32":
import os, msvcrt
msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
编辑:我正在尝试将PDF文件(二进制格式)推送到stdout,以便在Web服务器上提供服务。当我尝试使用sys.stdout.write写入文件时,它将所有回车符添加到二进制流中,导致PDF损坏。
编辑2:不幸的是,对于此项目,我需要在Windows Server上运行,因此Linux解决方案不可用。
简单的虚拟示例(从磁盘上的文件读取,而不是即时生成,只是我们知道生成代码不是问题):
file = open('C:\\test.pdf','rb')
pdfFile = file.read()
sys.stdout.write(pdfFile)
饮歌长啸
相关分类