カテゴリ: 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
Flask
認証と認可の違いを整理しよう!Flaskで押さえるべき基礎概念
New2
Flask
Flaskで非同期フォーム送信(Ajax POST)を実装する方法を解説!初心者でもわかるステップ解説
New3
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
New4
Python
PythonでMySQLに接続する方法!pymysqlの基本的な使い方
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.2
Java&Spring記事人気No2
Flask
Flaskでデータベースを使う基本!SQLAlchemyの導入方法をやさしく解説
No.3
Java&Spring記事人気No3
Python
Pythonでリストの要素を検索・取得する方法!index()やin演算子の活用法
No.4
Java&Spring記事人気No4
Python
Pythonのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.5
Java&Spring記事人気No5
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.6
Java&Spring記事人気No6
Python
Pythonプログラムの書き方を基礎から学ぼう!初心者が覚えるべき文法とは?
No.7
Java&Spring記事人気No7
Flask
Flaskアプリの環境変数をクラウドで安全に設定する方法!初心者のための完全ガイド
No.8
Java&Spring記事人気No8
Python
PythonでHello Worldを表示するには?初心者向けに最初の1行を実行してみよう