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()を使用すると互換性が保てます。
-
PythonのopenpyxlモジュールでExcelファイルを読み書きする方法【初心者向け完全ガイド】
Pythonには、Excelファイル(.xlsx)を操作するためのopenpyxlという便利なモジュールが用意されています。このモジュールを使えば、Excelファイルの新規作成、データの書き込み・読み取り、シートの追加や管理など、さまざまな操作をプログラムから自動的に行うことができます。 本記事では、openpyxlの基本的な使い方を、実際に動作するサンプルコードとともに順番に解説していきます。 openpyxlのインストール方法 openpyxlは標準ライブラリではないため、まずインストールが必要です。コマンドプロンプト(またはターミナル)で以下のコマンドを実行してください。 pip ins
-
MacでNTFSを読み書きする5つの方法【初心者向け完全ガイド】
Microsoft NTFS(NT File System)は、Windows PCで使用されるストレージデバイスの標準ファイルシステムです。FATなどの他のファイルシステムと比較して、データ転送速度、安定性、ディスク容量の利用効率において大幅な改善が図られています。しかし、NTFSはWindows専用のファイルシステムであり、macOSでは正式にサポートされていないため、MacでNTFSハードディスクを使用する際にいくつかの問題が発生します。 MacはNTFSハードドライブを無料で読み取れるのでしょうか?NTFSハードドライブをMacに接続すると、メニューバーにマウント・アンマウントのオプシ