gpt4 book ai didi

python - 为什么在 Python 2.x 中使用 msvcrt 时会出现 IOError?

转载 作者:太空宇宙 更新时间:2023-11-03 15:57:37 26 4
gpt4 key购买 nike

我正在尝试使用 Python 2.x 中的 HTML-PDF Web 服务在 Windows 中生成 PDF。此链接Python 2.x - Write binary output to stdout?说如果我将二进制文件写入标准输出,我需要修改它。

def generate_pdf():
pdf = callservice(html)
if pdf is not None and sys.platform == "win32":
import os, msvcrt
msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
return pdf

def process():
pdf = generate_pdf()
# This comes as IOError Errno 12 not enough space

E:\ 运行此程序的驱动器有 10 GB 可用空间。有谁知道会发生什么? C:\ 驱动器还有 10 GB 可用空间。我们是否应该检查 msvcrt 的源代码来看看发生了什么?我正在尝试检查这一点。

最佳答案

这个answer解释了原则上发生了什么,并且回溯将揭示确切的失败调用。

特别是,尝试 sys.stdin.read() 大于 32767 字节的数据 block 将导致 IOError“[Errno 12] 空间不足” ,当没有足够的数据读取时。考虑在 Windows 7 上运行以下示例:

python -c "import sys; data = sys.stdin.read(32768)"

关于python - 为什么在 Python 2.x 中使用 msvcrt 时会出现 IOError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40636086/

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