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

Pythonで複数ファイルを同時に開く方法!with構文の応用入門

Pythonで複数ファイルを同時に開く方法(with構文の応用)
Pythonで複数ファイルを同時に開く方法(with構文の応用)

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

生徒

「先生、Pythonで複数のファイルを同時に開きたいときはどうすればいいですか?」

先生

「Pythonではwith構文を使うことで、複数ファイルをまとめて開くことができます。with構文は、ファイルを自動で閉じてくれる便利な仕組みです。」

生徒

「自動で閉じてくれるってどういうことですか?」

先生

「通常、openでファイルを開いた後は、close()で閉じる必要があります。でもwith構文を使うと、処理が終わった時点で自動的にファイルを閉じてくれるんです。」

生徒

「なるほど。それで複数のファイルもまとめて開けるんですね?」

先生

「そうです。例を見ながら理解しましょう。」

1. 複数ファイルを同時に開く基本構文

1. 複数ファイルを同時に開く基本構文
1. 複数ファイルを同時に開く基本構文

複数のファイルを同時に開く場合、withを使ってカンマ区切りで指定できます。


with open("file1.txt", "r", encoding="utf-8") as f1, \
     open("file2.txt", "r", encoding="utf-8") as f2:
    content1 = f1.read()
    content2 = f2.read()
    print(content1)
    print(content2)

ポイント:

  • ファイルをwithでまとめて開くことで、処理後に自動で閉じられる
  • \で行を分けることで可読性を向上
  • 複数ファイルを同時に扱えるので、コピーや比較が簡単になる

2. 読み込んだ内容を比較する例

2. 読み込んだ内容を比較する例
2. 読み込んだ内容を比較する例

二つのファイルの内容が同じかどうかを比較する例です。


with open("file1.txt", "r", encoding="utf-8") as f1, \
     open("file2.txt", "r", encoding="utf-8") as f2:
    content1 = f1.read()
    content2 = f2.read()

if content1 == content2:
    print("ファイルの内容は同じです。")
else:
    print("ファイルの内容は異なります。")

ポイント:

  • 複数ファイルを同時に開くと、比較処理もシンプルになる
  • 自動で閉じるので、閉じ忘れによるエラーが減る

3. 書き込みを含む複数ファイル操作

3. 書き込みを含む複数ファイル操作
3. 書き込みを含む複数ファイル操作

読み込みと書き込みを同時に行う例です。


with open("input.txt", "r", encoding="utf-8") as infile, \
     open("output.txt", "w", encoding="utf-8") as outfile:
    for line in infile:
        outfile.write(line.upper())  # 大文字に変換して書き込む

ポイント:

  • 読み込むファイルと書き込むファイルを同時に管理
  • ループ内で処理しながら別ファイルに書き込むことが可能

4. 注意点とベストプラクティス

4. 注意点とベストプラクティス
4. 注意点とベストプラクティス
  • 複数ファイルを同時に開く場合でも、エンコーディングを正しく指定する
  • 大規模なファイルを同時に開くとメモリを大量に使うことがあるので注意
  • 処理が複雑になる場合は、ファイルごとにwithを分けて記述してもよい
  • Python 3では、with構文の利用が推奨されており、ファイル操作の安全性が高まる

5. 実践例:複数ファイルの内容をまとめる

5. 実践例:複数ファイルの内容をまとめる
5. 実践例:複数ファイルの内容をまとめる

複数のテキストファイルを一つのファイルにまとめる例です。


files = ["file1.txt", "file2.txt", "file3.txt"]

with open("merged.txt", "w", encoding="utf-8") as outfile:
    for filename in files:
        with open(filename, "r", encoding="utf-8") as infile:
            outfile.write(infile.read() + "\n")

ポイント:

  • 外側のwithで出力ファイルを開く
  • 内側のwithで入力ファイルを順番に開く
  • ファイルを閉じる手間が不要で安全にまとめられる
カテゴリの一覧へ
新着記事
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
Python
Pythonの文字列から一部を抽出する方法!スライスを使った基本的な切り出し方
No.5
Java&Spring記事人気No5
Flask
Flaskとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
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で本番運用する方法!初心者でもわかるデプロイ構成の基本