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エンコーディングと改行の取り扱いについての説明です。.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です