カテゴリ: Python 更新日: 2025/12/22

Pythonでファイルのエンコーディングを指定する方法!encodingパラメータ入門

Pythonでファイルのエンコーディングを指定する方法(encodingパラメータ)
Pythonでファイルのエンコーディングを指定する方法(encodingパラメータ)

先生と生徒の会話形式で理解しよう

生徒

「先生、Pythonでファイルを開くときに文字化けすることがあります。どうしたらいいですか?」

先生

「それはファイルの文字コード(エンコーディング)がPythonのデフォルトと合っていない場合に起きます。open関数でencodingパラメータを指定することで解決できます。」

生徒

「文字コードって何ですか?」

先生

「文字コードは、コンピュータが文字を数字に変換して保存する方法のことです。有名なものにUTF-8Shift_JISがあります。」

生徒

「なるほど。実際にどうやって指定するんですか?」

先生

「具体的な例を見ながら説明しましょう。」

1. encodingパラメータとは?

1. encodingパラメータとは?
1. encodingパラメータとは?

encodingパラメータは、Pythonがファイルの文字を読み書きする際に使う文字コードを指定するためのものです。例えば、UTF-8形式のファイルを正しく読み込む場合はencoding='utf-8'を指定します。

2. ファイルを読み込むときの例

2. ファイルを読み込むときの例
2. ファイルを読み込むときの例

日本語を含むテキストファイルを正しく読み込む例です。


# UTF-8エンコーディングでファイルを読み込む
with open("sample_utf8.txt", "r", encoding="utf-8") as f:
    content = f.read()
    print(content)

# Shift_JISエンコーディングでファイルを読み込む
with open("sample_sjis.txt", "r", encoding="shift_jis") as f:
    content = f.read()
    print(content)

ポイント:

  • rは読み込みモード(read)
  • encodingで文字コードを指定
  • 文字化けを防ぐためにファイルの文字コードに合わせる

3. ファイルに書き込むときの例

3. ファイルに書き込むときの例
3. ファイルに書き込むときの例

書き込む際もencodingを指定できます。


# UTF-8で書き込む
with open("output_utf8.txt", "w", encoding="utf-8") as f:
    f.write("こんにちは、Python!")

# Shift_JISで書き込む
with open("output_sjis.txt", "w", encoding="shift_jis") as f:
    f.write("こんにちは、Python!")

ポイント:

  • wは書き込みモード(write)
  • エンコーディングを間違えると文字化けする
  • 日本語ファイルの場合はUTF-8が一般的

4. 読み書きでよく使う文字コード

4. 読み書きでよく使う文字コード
4. 読み書きでよく使う文字コード

主要な文字コードの例:

  • UTF-8:世界中で広く使われる標準的な文字コード。日本語も含めて多くの文字に対応。
  • Shift_JIS:日本国内で古くから使われる文字コード。Excelや古いシステムで使用されることがある。
  • UTF-16:大きな文字セットに対応。ファイルサイズが大きくなることがある。

5. 実用例:文字化けを防いでファイルをコピーする

5. 実用例:文字化けを防いでファイルをコピーする
5. 実用例:文字化けを防いでファイルをコピーする

ファイルを読み込んで同じ内容を別ファイルに書き込む例です。


# 元のファイルを読み込む
with open("source.txt", "r", encoding="utf-8") as f:
    data = f.read()

# 新しいファイルに書き込む
with open("copy.txt", "w", encoding="utf-8") as f:
    f.write(data)

ポイント:

  • 元ファイルと同じエンコーディングを指定
  • 文字化けを防ぎ、安全にデータをコピー可能

6. 注意点

6. 注意点
6. 注意点
  • ファイルの文字コードを間違えると、文字化けやエラーの原因になる
  • UTF-8は現在の標準で、可能であればUTF-8を使用
  • 古いWindowsのシステムではShift_JISを使う場合がある
  • Python 3ではencodingを指定することが推奨されている
カテゴリの一覧へ
新着記事
New1
Python
Pythonの文字列から一部を抽出する方法!スライスを使った基本的な切り出し方
New2
Flask
Flaskアプリのセキュリティ対策まとめ!初心者向けに基本をやさしく解説
New3
Flask
FlaskでCookieを安全に使う方法!HttpOnly・Secureフラグの使い方を徹底解説
New4
Flask
Flaskで外部APIと連携する方法!requestsライブラリの使い方を初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.2
Java&Spring記事人気No2
Python
Pythonでトランザクション処理を実装する方法を完全解説!commit・rollbackで安全なSQL操作
No.3
Java&Spring記事人気No3
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.4
Java&Spring記事人気No4
Flask
Flaskとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.5
Java&Spring記事人気No5
Python
Pythonの文字列から一部を抽出する方法!スライスを使った基本的な切り出し方
No.6
Java&Spring記事人気No6
Flask
Flask‑RESTfulでREST APIを構築する手順まとめ!初心者向けにやさしく解説
No.7
Java&Spring記事人気No7
Flask
Flaskで開発中にデータベースを初期化する方法!初心者でもわかる便利なTips
No.8
Java&Spring記事人気No8
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本