目次
1. Base64とは?Pythonでの基本的な使用方法
Base64とは? Base64は、バイナリデータをテキスト形式にエンコードするための手法です。特に、電子メール、URL、ウェブ通信で用いられ、バイナリデータを安全に送信するために使用されます。この技術は、画像やファイルをエンコードし、テキストベースで安全にやり取りすることを可能にします。 PythonでBase64を使う利点 Pythonでは、base64
という標準ライブラリを使用することで、追加インストール不要で簡単にBase64エンコードやデコードが可能です。以下のコードは、文字列をBase64形式でエンコードし、その後デコードして元に戻す方法を示しています。import base64
# エンコードするデータ
data = "こんにちは"
encoded_data = base64.b64encode(data.encode('utf-8'))
print(encoded_data) # b'44GT44KT44Gr44Gh44Gv'
# デコードして元のデータに戻す
decoded_data = base64.b64decode(encoded_data).decode('utf-8')
print(decoded_data) # こんにちは
b64encode()
関数は、バイト列をBase64形式にエンコードします。encode('utf-8')
は、文字列をバイト列に変換するために使われます。b64decode()
関数はエンコードされたデータをデコードして、元の文字列に戻します。

2. PythonでBase64エンコードを行う手順
文字列のエンコード Base64エンコードは、テキストやデータをバイト列に変換してから行います。次のコードでは、Pythonで文字列をエンコードする手順を示しています。import base64
# 文字列をエンコード
text = "Python Base64"
encoded_text = base64.b64encode(text.encode('utf-8'))
print(encoded_text) # b'UHl0aG9uIEJhc2U2NA=='
解説: encode('utf-8')
で文字列をバイト列に変換し、b64encode()
でBase64エンコードします。エンコードされたデータは、バイト列として表示されます。3. Base64デコードの仕組みと実例
エンコードされたデータを元に戻す方法 次に、Base64エンコードされたデータをデコードして元の文字列に戻す例です。import base64
# Base64エンコードされたデータ
encoded_data = b'UHl0aG9uIGlzIGdyZWF0'
# デコードして元の文字列に戻す
decoded_data = base64.b64decode(encoded_data).decode('utf-8')
print(decoded_data) # Python is great
ポイント:
デコードされたデータはバイト列として返されるので、decode('utf-8')
を使って文字列に戻します。これにより、エンコードされた文字列を元の形式に復元できます。
4. Pythonで画像ファイルをBase64エンコード・デコードする方法
画像ファイルをBase64形式に変換する Base64は、画像ファイルなどのバイナリデータもエンコードできます。次の例では、画像ファイルをBase64エンコードしてテキスト形式で保存する方法を紹介します。import base64
# 画像ファイルを読み込み、Base64形式にエンコード
with open('image.png', 'rb') as img_file:
encoded_image = base64.b64encode(img_file.read())
print(encoded_image)
画像ファイルを元に戻す方法 以下は、エンコードされた画像ファイルをデコードし、再び画像形式に戻すコードです。import base64
# エンコードされた画像データ
encoded_image = b'...' # エンコードされたデータ
# デコードして画像ファイルとして保存
with open('decoded_image.png', 'wb') as img_file:
img_file.write(base64.b64decode(encoded_image))
解説: b64encode()
を使って画像をエンコードし、b64decode()
でデコードすることで、バイナリ形式のデータに戻せます。5. Base64の実践的な応用例
Webアプリケーションでの使用例 Base64は、WebアプリケーションやAPIでデータをやり取りする際に非常に役立ちます。たとえば、画像をBase64形式に変換してJSONレスポンスとして返すAPIの例です。from flask import Flask, jsonify
import base64
app = Flask(__name__)
@app.route('/image')
def get_image():
with open('image.png', 'rb') as image_file:
encoded_image = base64.b64encode(image_file.read()).decode('utf-8')
return jsonify({'image': encoded_image})
if __name__ == '__main__':
app.run(debug=True)
このAPIは、画像をBase64でエンコードしてJSONで返すシンプルな例です。Webアプリケーションでは、データベースに画像を保存したり、API通信で画像データをやり取りする際に役立ちます。