Python でファイル内の Unicode を扱うのは難しい場合があります。よくある誤解を調べ、洗練された解決策を見つけてみましょう。
Unicode エンコーディングについて
Python 文字列は、UTF-8 などのさまざまな文字エンコーディングを使用して文字をエンコードする Unicode オブジェクトです。文字列をファイルに書き込むときは、それをエンコードする方法を決定する必要があります。 「utf8」エンコーディングは、Unicode 文字をバイトのシーケンスに変換します。
指定したエンコーディングでファイルを開く
.encode と .decode に依存するのではなく、次のようにすることをお勧めします。ファイルを開くときにエンコーディングを指定します。 Python 2.6 以降では、io モジュールは io.open にエンコーディング パラメーターを提供します。 Python 3.x では、組み込みの open 関数もこれをサポートしています。
<code class="python">import io f = io.open("test", "r", encoding="utf-8")</code>
これにより、ファイルは UTF-8 モードで開かれ、f.read() はデコードされた Unicode オブジェクトを返します。
コーデック モジュールの使用
代わりに、コーデック モジュールから open を使用することもできます。
<code class="python">import codecs f = codecs.open("test", "r", "utf-8")</code>
read() と readline の混合() とコーデック
コーデックを使用するときに read() と readline() を混在させると、問題が発生する可能性があります。エンコードの問題を回避するには、Unicode 文字列のリストを返す readlines() を使用することをお勧めします。
結論
Python で Unicode テキスト ファイルを効果的に読み書きするには、次のようにします。 io.open または codecs.open を使用してファイルを開くときにエンコードを指定します。これにより、Unicode 文字が正しく処理され、期待どおりに表現されることが保証されます。
以上がPython で Unicode ファイルを読み書きする方法: エンコードとデコードのガイド?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。