gpt4 book ai didi

Python 2.x - 将二进制输出写入标准输出?

转载 作者:IT老高 更新时间:2023-10-28 21:51:51 32 4
gpt4 key购买 nike

有没有办法在 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 文件(二进制形式)推送到标准输出,以便在 Web 服务器上提供服务。当我尝试使用 sys.stdout.write 写入文件时,它会将各种回车添加到导致 PDF 呈现损坏的二进制流中。

编辑 2:对于这个项目,很遗憾,我需要在 Windows Server 上运行,所以 Linux 解决方案已经过时了。

简单的虚拟示例(从磁盘上的文件读取,而不是动态生成,只是为了让我们知道生成代码不是问题):

file = open('C:\\test.pdf','rb') 
pdfFile = file.read()
sys.stdout.write(pdfFile)

最佳答案

你在哪个平台上?

你可以试试this recipe如果您使用的是 Windows(链接表明它是 Windows 特定的)。

if sys.platform == "win32":
import os, msvcrt
msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)

网上有一些引用资料表明 Python 3.1 中会有/应该有一个函数以二进制模式重新打开 sys.stdout 但我真的不知道是否有比以上适用于 Python 2.x。

关于Python 2.x - 将二进制输出写入标准输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2374427/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com