【发布时间】:2017-03-26 03:26:01
【问题描述】:
我正在尝试使用 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(最近一次调用最后一次): 文件“something.py”,第 3 行,在 file.write(字节(行)) TypeError:没有编码的字符串参数
我做错了什么?
【问题讨论】:
-
这……不是一回事。你为什么做这个?为什么首先在线路上调用
str,为什么稍后再在它们上调用bytes?为什么不直接通过电子邮件发送 PDF? -
我不知道怎么做。我需要能够用 Python 做到这一点。
-
您可以执行类似
base64.b64encode(cPickle.dumps(open('somefile.pdf', 'rb').read()))的操作,然后在之后撤消该操作 -
如果我对其进行编码会发生什么?
-
@Peter 使用
pickle有什么意义?