2017-06-19 12 views
1

私は、関数base64.encode()を使って、Pythonでファイルの内容を直接エンコードしたいと考えています。PythonでのファイルのBase64エンコーディング

documentation状態:

base64.encode(input, output)

Encode the contents of the binary input file and write the resulting base64 encoded data to the output file. input and output must be file objects.

だから私はこれを行う:/usr/lib/python3.6/base64.pyのバグのように見える私の目には

>>> 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' 

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

と、次のエラーを取得します私の大部分はそれを信じたくない...

+0

はバイトモードでファイルを開こうとすると動作するはずです: 'rb' /' wb' –

答えて

3

docs

when opening a binary file, you should append 'b' to the mode value to open the file in binary mode

がそう

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

を変更

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

関連する問題