カテゴリ: 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
Flask
Flaskで非同期フォーム送信(Ajax POST)を実装する方法を解説!初心者でもわかるステップ解説
New2
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
New3
Python
PythonでMySQLに接続する方法!pymysqlの基本的な使い方
New4
Flask
FlaskのURLルールとは?ルーティングの基本と動的URLの作り方を解説
人気記事
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プログラムの書き方を基礎から学ぼう!初心者が覚えるべき文法とは?
No.5
Java&Spring記事人気No5
Flask
Flaskアプリの環境変数をクラウドで安全に設定する方法!初心者のための完全ガイド
No.6
Java&Spring記事人気No6
Python
Pythonのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.7
Java&Spring記事人気No7
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.8
Java&Spring記事人気No8
Flask
Flaskでクラウド上のメッセージキュー(SQS/PubSub)を扱う完全ガイド!初心者向け解説