ホームページ > バックエンド開発 > Python チュートリアル > Python で Unicode (UTF-8) テキストをファイルに読み書きするにはどうすればよいですか?

Python で Unicode (UTF-8) テキストをファイルに読み書きするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-05 12:33:02
オリジナル
331 人が閲覧しました

How do I read and write Unicode (UTF-8) text to files in Python?

Python での Unicode (UTF-8) の読み取りとファイルへの書き込み

エンコードとデコードについて

Python 2.4 では、Unicode テキストを変換する必要がありますファイルに書き込む前にバイト文字列に変換します。 encode('utf8') メソッドを使用すると、Unicode 文字列を UTF-8 にエンコードできます。ファイルの内容を Unicode オブジェクトとして読み取るには、decode('utf8') メソッドを使用できます。

バイナリ ファイルとテキスト ファイル

バイナリ ファイルとテキスト ファイルを区別することが重要です。バイナリ ファイルはデータをそのまま保存しますが、テキスト ファイルは特定の文字エンコーディング (通常は UTF-8) を前提としています。 Unicode オブジェクトをファイルに書き込むときは、誤解を避けるために目的のエンコーディングを指定することが重要です。

io モジュール

Python 2.6 以降の io モジュールは、io.open 関数を提供します。これにより、開くときにファイルのエンコーディングを指定できます。 io.open を使用すると、ファイルの内容を Unicode オブジェクトとして直接読み取ることができます。

<code class="python">import io
f = io.open("test", mode="r", encoding="utf-8")
text = f.read()  # text is a Unicode object</code>
ログイン後にコピー

Python 3.x では、io.open 関数は組み込みの open 関数のエイリアスであり、エンコーディング引数:

<code class="python">open("test", mode="r", encoding="utf-8")  # returns a Unicode-reading file object</code>
ログイン後にコピー

コーデック モジュール

別のオプションは、コーデック モジュールの open 関数を使用することです:

<code class="python">import codecs
f = codecs.open("test", "r", "utf-8")
text = f.read()  # text is a Unicode object</code>
ログイン後にコピー

ただし、次のことを使用することに注意してください。 codecs.open は、read() 操作と readline() 操作を混合すると問題が発生する可能性があります。

UTF-8 エンコーディングの役割

UTF-8 は、幅広い範囲をサポートする多用途の文字エンコーディングです。言語文字の。デフォルトでは、Python はファイルをバイナリ ストリームとして扱います。エンコードを明示的に指定すると、Python はファイルの内容を Unicode として正しく解釈できるようになり、文字解釈の問題を回避できます。

結論

エンコードとデコードの概念を理解し、適切なツール (io.open) を使用するまたは codecs.open)、ファイル内の Unicode テキストを操作することが、Python でのシームレスなデータ操作にとって重要である場合。

以上がPython で Unicode (UTF-8) テキストをファイルに読み書きするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート