Python中的文件的base64编码

时间:2017-06-19 11:17:20

标签: python encoding base64

我想使用函数base64.encode()直接用Python编码文件的内容。

documentation州:

  

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中的一个小虫,但我的很大一部分不想相信......

1 个答案:

答案 0 :(得分:3)

来自docs

  

打开二进制文件时,应将'b'附加到模式值以二进制模式打开文件

如此改变

encode(open('existing_file.dat','r'), open('output.dat','w'))

encode(open('existing_file.dat','rb'), open('output.dat','wb'))

应该有效