(近況)
ここの所、忙しくてあまりPythonに触れられていません。
安西先生、Python(とtwitter)が、やりたいです。。。
そんなこんなで今週のPythonです。
PythonでBASE64を扱うには、まさしくその通りの名前のモジュールbase64を用います。
画像を扱う時に備えて勉強しておく必要があります。
BASE64はバイナリデータを64種類の文字に置き換えて表現する方法です。
64の内訳は
となっています。
バイナリデータからBASE64に変換する場合、
6ビットずつに区切って変換していきます。
その他知識はWikipediaがよくまとまっています。
(具体的な手順、使用例など)
https://ja.wikipedia.org/wiki/Base64
import base64 # base64にエンコード from_str = "TEST" str_encoded = base64.b64encode(from_str) # base64からデコード str_decoded = base64.b64(str_encoded)
このモジュールはバイナリデータを印字可能な ASCII にエンコード関数、およびそのようなエンコードデータをバイナリにデコードする関数を提供します。それらは、RFC 3548 が定義する Base16, Base32, Base64 のエンコーディング、デファクトスタンダードになっている Ascii85, Base85 のエンコーディングについてのエンコード、デコード関数です。
とあります。
たとえば、base32にエンコードする場合は
base64.b32encode()
を用いますし、
url用のエンコードにはbase64.urlsafe_b64encode()
を用います。
ローカルファイルの場合は、
開いて読み込めばOKです。
import base64 with open("対象画像ファイル","rb") as f: img = f.read() img_base64 = base64.b64.encode(img)
ここから先はネットワークやらエンコードやらの知識が欠けているので、
今後勉強してこう。