PythonでBase64エンコーディングを行う際、改行を含まない方法について説明します。Pythonのbase64
モジュールを使用します。
Base64エンコーディングとは
Base64エンコーディングは、バイナリデータを一定の規則に基づき可読文字に置き換える変換方式の一つです。英大文字、小文字、数字、記号の64文字のみを用いて、データを表現します。
PythonでのBase64エンコーディング
Pythonではbase64
モジュールがBase64関連の機能をまとめています。b64encode()
がBase64エンコード、b64decode()
がBase64デコードの機能を提供します。
import base64
print(base64.b64encode('こんにちは'.encode()))
このコードは文字列’こんにちは’をエンコードします。b64encode()
の引数はbytesのため、あらかじめencode()
でbytesに変換します。
改行の取り扱い
通常、Base64エンコーディングでは76文字ごとに改行が挿入されます。しかし、改行を含まないエンコーディングが必要な場合もあります。Pythonのbase64
モジュールでは、改行を含まないエンコーディングを行うオプションは提供されていません。
そのため、以下のようなコマンドラインワンライナーを使用することで改行を含まないエンコーディングを行うことができます。
python -c "import sys,base64;print(base64.b64encode(sys.stdin.buffer.read()).decode())" < INPUT_FILE > OUTPUT_FILE
このコマンドは、INPUT_FILE
の内容をBase64エンコードし、結果をOUTPUT_FILE
に出力します。このとき、エンコード結果には改行が含まれません。
以上がPythonでのBase64エンコーディングと改行の取り扱いについての説明です。.