Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python 3で文字列をバイト列に変換する方法【encode()の使い方を解説】

Python 3で文字列をバイト列に変換する方法

Python 3で文字列(str型)をバイト列(bytes型)に変換するには、文字列クラスが標準で持っている encode() メソッドを使用します。最も一般的なのは、エンコーディングとして 'utf-8' を指定する方法です。

基本的な使い方

>>> s = u"HellΘ WΘrld"
>>> s.encode('utf-8')
b'Hell\xce\x98 W\xce\x98rld'

この例では、Unicode文字「Θ」がUTF-8でエンコードされ、2バイトのシーケンス \xce\x98 に変換されています。戻り値には b プレフィックスが付いており、これが bytes 型オブジェクトであることを示しています。

覚えておきたいポイント

  • encode() の戻り値は常に bytes 型になります。
  • 引数を省略した場合は、デフォルトのエンコーディング(通常はUTF-8)が適用されます。
  • 逆に、バイト列から文字列に戻したいときは decode() メソッドを使います。
  • 対応していない文字が含まれる場合に備え、errors 引数でエラー処理方法を指定することも可能です。

テキストデータとバイナリデータを明確に区別するPython 3の設計において、encode() / decode() を正しく使いこなすことは、ファイル操作やネットワーク通信を行う上で非常に重要です。

  1. Pythonで文字列をバイナリ(2進数)に変換する方法をわかりやすく解説

    Pythonで文字列をバイナリに変換する基本の考え方Pythonで文字列をバイナリ(2進数)表現に変換するには、文字列内の各文字を1つずつ取り出し、それぞれを2進数へ変換したうえで、結果をひとつの文字列として連結します。各文字の文字コードは ord() 関数で取得でき、format() 関数に「b」フォーマット指定子を渡すことで、簡単に2進数形式へ整形できます。format() と ord() を使った変換方法最もシンプルなのが、format(ord(x), b) を使って各文字 x を2進数の文字列に変換する方法です。次の例では、文字列 hello world の各文字をスペース区切りのバイ

  2. Pythonでリストの文字列表現をリストに変換する方法【ast.literal_evalの使い方】

    Pythonでは、[apple, orange, banana] のように文字列として表現されたリストを、実際のリストオブジェクトへ変換したい場面があります。そんなときに便利なのが、標準ライブラリの ast.literal_eval() です。 ast.literal_eval()とは ast.literal_eval() は、文字列をPythonの式として安全に評価するための関数です。任意のコードを実行してしまう危険性がある eval() と異なり、評価できるのは文字列・数値・タプル・リスト・辞書・ブール値(True / False)、そして None といったPythonのリテラル構造のみ