カテゴリ: 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
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で仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.7
Java&Spring記事人気No7
Python
Pythonのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.8
Java&Spring記事人気No8
Flask
Flaskでクラウド上のメッセージキュー(SQS/PubSub)を扱う完全ガイド!初心者向け解説