我想在Windows中使用HTML-PDF Web服务在Python 2.x
中生成PDF。这个链接Python 2.x - Write binary output to stdout?说我需要修改二进制文件,如果我写它到标准输出。当我在Python 2.x中使用msvcrt时,为什么会出现IOError?
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
的源代码以查看正在发生的事情。我正在检查。
您是否将PDF写入stdout,该文件已被重定向到驱动器'E:'或驱动器'C:'上的文件? – eryksun
sys.stdout.fileno()只是1,我从shell运行这个脚本作为python file.py,这是否回答你的问题? – Nishant
如果你不是将stdout重定向到磁盘文件,我没有理由将其改为二进制模式。 – eryksun