我正在尝试使用 Python 通过电子邮件向自己发送 PDF 文件。我可以向自己发送 PDF 文件的二进制代码,但无法从该二进制代码重建 PDF 文件。
以下是获取 PDF 文件的二进制代码的方法:
file = open('code.txt', 'w')
for line in open('somefile.pdf', 'rb').readlines():
file.write(str(line))
file.close()
以下是我尝试从二进制代码创建 PDF 文件的方法:
file = open('new.pdf', 'wb')
for line in open('code.txt', 'r').readlines():
file.write(bytes(line))
file.close()
然后我收到此错误:
Traceback (most recent call last): File "something.py", line 3, in file.write(bytes(line)) TypeError: string argument without an encoding
我做错了什么?
最佳答案
在第一个 block 中,以二进制写入模式(wb)打开文件,因为您正在向其中写入二进制文件。此外,您不需要将其显式转换为 str。它应该看起来像这样:
file = open('code.txt', 'wb')
for line in open('somefile.pdf', 'rb').readlines():
file.write(line)
file.close()
对于第二个 block ,以读取二进制模式 (rb) 打开文件。这里也不需要显式转换为字节。它应该看起来像这样:
file = open('new.pdf', 'wb')
for line in open('code.txt', 'rb').readlines():
file.write(line)
file.close()
这应该可以解决问题。但为什么首先需要转换它呢?保持文件完整将节省您的辛劳和计算能力。
关于python - 如何使用 Python 从二进制代码创建 PDF 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43019315/