の目的は、base64.b64encode()
バイナリ データを ASCII 対応の「テキスト」に変換することです。ただし、メソッドはバイト型のオブジェクトを返します。
>>> import base64
>>> base64.b64encode(b'abc')
b'YWJj'
その出力を単に取得するのは簡単ですが、私の質問は、ではなくを返すことdecode()
の意味は何ですか?base64.b64encode()
bytes
str
ベストアンサー1
b64encode()
出力で何をしたいのかを知ることは不可能です。
多くの場合、エンコードされた値をテキストとして扱いたい場合がありますが、ネットワーク経由で送信する場合など、多くの場合、代わりにバイトとして扱いたい場合があります。
は知ることができないためb64encode()
、推測を拒否します。また、入力が であるためbytes
、出力は暗黙的に に強制変換されるのではなく、同じ型のままになりますstr
。
ご指摘のとおり、出力をデコードするのはstr
簡単です。
base64.b64encode(b'abc').decode('ascii')
...また、結果についても明確に述べます。
余談ですが、base64.b64decode()
(注:デコード、 ないja 翻訳コード)はstr
バージョン3.3以降に受け入れられており、変更はやや物議を醸す。