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

Pythonでファイルを分割・結合する方法!データ分割テクニック入門

Pythonでファイルを分割・結合する方法(データ分割テクニック)
Pythonでファイルを分割・結合する方法(データ分割テクニック)

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

生徒

「先生、大きなファイルを小さく分けたいときって、Pythonでどうすればいいですか?」

先生

「Pythonでは、ファイルを分割して別々のファイルに書き出すことができます。逆に、複数のファイルを一つに結合することも簡単にできます。」

生徒

「分割や結合って、具体的にはどういう風に操作するんですか?」

先生

「それでは、基本の方法と応用例を一緒に見ていきましょう。」

1. ファイルを分割する基本

1. ファイルを分割する基本
1. ファイルを分割する基本

大きなテキストファイルを複数の小さなファイルに分けるには、行ごとに読み込み、一定の行数ごとに新しいファイルに書き出します。


chunk_size = 100  # 1つのファイルに書き込む行数
with open("large_file.txt", "r", encoding="utf-8") as infile:
    lines = infile.readlines()
    for i in range(0, len(lines), chunk_size):
        with open(f"part_{i//chunk_size + 1}.txt", "w", encoding="utf-8") as outfile:
            outfile.writelines(lines[i:i+chunk_size])

ポイント:

  • chunk_sizeで1つの分割ファイルに何行書くかを指定
  • 行ごとに処理することで、メモリの無駄を抑えつつ分割可能
  • ファイル名に番号をつけて、順番をわかりやすくしている

2. ファイルを結合する基本

2. ファイルを結合する基本
2. ファイルを結合する基本

分割されたファイルを1つにまとめるには、順番に読み込み、書き込み用のファイルに連結します。


files = ["part_1.txt", "part_2.txt", "part_3.txt"]
with open("merged_file.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")

ポイント:

  • 出力ファイルは1つだけで、内部で順番に読み込んで書き込む
  • 改行を入れることで、元のファイルの区切りがわかるようにしている
  • 分割したファイルが複数あっても簡単に結合できる

3. 大きなファイルを効率よく分割する方法

3. 大きなファイルを効率よく分割する方法
3. 大きなファイルを効率よく分割する方法

メモリに大きなファイル全体を読み込むと、処理が遅くなることがあります。そんなときは、行ごとに順番に読み込みながら分割します。


chunk_size = 100
file_count = 1
line_count = 0
outfile = open(f"part_{file_count}.txt", "w", encoding="utf-8")

with open("large_file.txt", "r", encoding="utf-8") as infile:
    for line in infile:
        outfile.write(line)
        line_count += 1
        if line_count >= chunk_size:
            outfile.close()
            file_count += 1
            line_count = 0
            outfile = open(f"part_{file_count}.txt", "w", encoding="utf-8")
outfile.close()

ポイント:

  • 全体を一度に読み込まず、行ごとに処理
  • 分割ごとにファイルを自動で切り替え
  • 大きなファイルでもメモリ消費を抑えながら分割可能

4. 応用例:分割ファイルを順番に結合して加工

4. 応用例:分割ファイルを順番に結合して加工
4. 応用例:分割ファイルを順番に結合して加工

複数の分割ファイルを結合しながら、特定の文字列だけを抽出して新しいファイルに書き込む例です。


files = ["part_1.txt", "part_2.txt", "part_3.txt"]

with open("filtered_merged.txt", "w", encoding="utf-8") as outfile:
    for filename in files:
        with open(filename, "r", encoding="utf-8") as infile:
            for line in infile:
                if "重要" in line:  # "重要"という文字が含まれる行だけ書き込む
                    outfile.write(line)

ポイント:

  • 結合と同時にデータのフィルタリングが可能
  • 複数ファイルを扱う処理を効率的にまとめられる
  • テキストデータの分析や整理にも活用できる

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

5. 注意点とベストプラクティス
5. 注意点とベストプラクティス
  • ファイル分割時は、行数やサイズを意識して分割する
  • 結合するファイルの順番を間違えないように注意
  • エンコーディングを統一することで文字化けを防止
  • 分割・結合処理の前に必ずバックアップをとる
  • Pythonの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のSQLAlchemyでフィルタリング検索!filter, filter_byの使い方完全ガイド