カテゴリ: 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
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
Python
Pythonのmatch文(パターンマッチング)とは?switch文の代替としての使い方をやさしく解説
No.8
Java&Spring記事人気No8
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本