我想使用函数base64.encode()
直接用Python编码文件的内容。
base64.encode(输入,输出)
对二进制输入文件的内容进行编码,并将生成的base64编码数据写入输出文件。输入和输出必须是文件对象。
所以我这样做:
encode(open('existing_file.dat','r'), open('output.dat','w'))
并收到以下错误:
>>> import base64
>>> base64.encode(open('existing_file.dat','r'), open('output.dat','w'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.6/base64.py", line 502, in encode
line = binascii.b2a_base64(s)
TypeError: a bytes-like object is required, not 'str'
在我眼中看起来像/usr/lib/python3.6/base64.py
中的一个小虫,但我的很大一部分不想相信......
答案 0 :(得分:3)
来自docs
打开二进制文件时,应将
'b'
附加到模式值以二进制模式打开文件
如此改变
encode(open('existing_file.dat','r'), open('output.dat','w'))
到
encode(open('existing_file.dat','rb'), open('output.dat','wb'))
应该有效