カテゴリ: 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
Django
Djangoプロジェクトのディレクトリ構造を完全解説!初心者でも迷わないフォルダの見方
New2
Flask
Flask×Flask-SocketIOでチャットアプリを作る流れを初心者向けにやさしく解説
New3
Flask
Flaskアプリの作り方を基礎から学ぼう!初心者が覚えるべき開発の流れとは?
New4
Flask
Flask-WTFでファイルアップロードフォームを完全ガイド!初心者でもわかる画像やPDFのアップロード方法
人気記事
No.1
Java&Spring記事人気No1
Django
Django環境構築の全手順を完全解説!初心者でも迷わないPython・Djangoセットアップガイド
No.2
Java&Spring記事人気No2
Flask
Flask-Loginでユーザー認証を完全ガイド!初心者でもわかるログイン処理の作り方
No.3
Java&Spring記事人気No3
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.4
Java&Spring記事人気No4
Python
PythonでHello Worldを表示するには?初心者向けに最初の1行を実行してみよう
No.5
Java&Spring記事人気No5
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
No.6
Java&Spring記事人気No6
Python
Pythonでリストを文字列に変換する方法を完全ガイド!初心者でもわかるjoinの使い方
No.7
Java&Spring記事人気No7
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本
No.8
Java&Spring記事人気No8
Python
Pythonのmatch文(パターンマッチング)とは?switch文の代替としての使い方をやさしく解説