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

PythonでUnicode(UTF-8)ファイルを読み書きする方法を徹底解説

PythonでUnicode(UTF-8)形式のファイルを読み書きするには、標準ライブラリのioモジュールを使用するのが推奨されています。io.open()はPython 3の組み込みopen()関数と互換性があり、エンコーディングを明示的に指定できるため、文字化けや予期しないエラーを防ぐことができます。

基本的な読み書きの例

以下のコードは、ioモジュールを使ってUnicode(UTF-8)ファイルの読み書きを行う基本的な例です。

import io

# UTF-8でエンコードされたファイルを読み込む
with io.open(filename, 'r', encoding='utf8') as f:
    text = f.read()

# 読み込んだUnicodeテキストを処理する
# ...

# 処理結果をUTF-8でファイルに書き込む
with io.open(filename, 'w', encoding='utf8') as f:
    f.write(text)

コードのポイント

  • encoding='utf8' の指定:エンコーディングを明示的に指定することで、OSやロケールに依存するデフォルトエンコーディングによるトラブルを回避できます。
  • with文の活用:ブロックを抜けると自動的にファイルが閉じられるため、ファイルの閉じ忘れによるリソースリークを防げます。
  • モードの指定'r'は読み込み、'w'は書き込み(既存内容は上書き)を意味します。

Python 3でのよりシンプルな書き方

Python 3では、組み込みのopen()関数自体がencoding引数をサポートしているため、ioモジュールを明示的にインポートしなくても同じ処理を記述できます。

# Python 3ではこちらの書き方も可能
with open(filename, 'r', encoding='utf8') as f:
    text = f.read()

with open(filename, 'w', encoding='utf8') as f:
    f.write(text)

いずれの方法でも動作は同じですが、Python 2とPython 3の両方に対応したコードを書く場合はio.open()を使用すると互換性が保てます。

  1. PythonのopenpyxlモジュールでExcelファイルを読み書きする方法【初心者向け完全ガイド】

    Pythonには、Excelファイル(.xlsx)を操作するためのopenpyxlという便利なモジュールが用意されています。このモジュールを使えば、Excelファイルの新規作成、データの書き込み・読み取り、シートの追加や管理など、さまざまな操作をプログラムから自動的に行うことができます。 本記事では、openpyxlの基本的な使い方を、実際に動作するサンプルコードとともに順番に解説していきます。 openpyxlのインストール方法 openpyxlは標準ライブラリではないため、まずインストールが必要です。コマンドプロンプト(またはターミナル)で以下のコマンドを実行してください。 pip ins

  2. MacでNTFSを読み書きする5つの方法【初心者向け完全ガイド】

    Microsoft NTFS(NT File System)は、Windows PCで使用されるストレージデバイスの標準ファイルシステムです。FATなどの他のファイルシステムと比較して、データ転送速度、安定性、ディスク容量の利用効率において大幅な改善が図られています。しかし、NTFSはWindows専用のファイルシステムであり、macOSでは正式にサポートされていないため、MacでNTFSハードディスクを使用する際にいくつかの問題が発生します。 MacはNTFSハードドライブを無料で読み取れるのでしょうか?NTFSハードドライブをMacに接続すると、メニューバーにマウント・アンマウントのオプシ