3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

100MB超えのCSVの中身を確認するためにやったこと

Last updated at Posted at 2025-12-07

背景

業務で100MBを超える巨大なCSVファイルの内容を確認する必要がありました。
しかし、ファイルサイズが大きすぎて次のような問題が発生しました。

  • Numbersでは読み込み中に固まる
  • Googleスプレッドシートはアップロードで容量制限に引っかかる
  • テキストエディタで開いても重く、実質確認ができない

今回確認したかった内容は以下の2点だけでした。

  • ヘッダ行(列名)を確認したい
  • 先頭のいくつかのレコードを確認したい

そこで、ファイル全体を開くのではなく、必要な部分だけ切り出すアプローチを取ることにしました。


やったこと(解決策)

巨大CSVをそのまま扱うのは非効率なので、ヘッダ+先頭500行だけを抽出した別ファイルを作るスクリプトを作成しました。

これにより、

  • NumbersやGoogleスプレッドシートでも問題なく開けるサイズにできる
  • 文字コード(Shift_JIS / cp932)も安全に扱える
  • 列構造・データの傾向を把握するには十分

というメリットがあります。

実際に使ったスクリプト

#!/usr/bin/env python3
import csv
from pathlib import Path

MAX_ROWS = 500  # 先頭何行を抜き出すか

# ★ここを実際のファイル名に変えてください
INPUT_FILE = "full.csv"  # 元のCSVファイル名
OUTPUT_FILE = "sample.csv"     # 出力するサンプルCSVファイル名


def main():
    input_path = Path(INPUT_FILE)
    output_path = Path(OUTPUT_FILE)

    if not input_path.exists():
        print(f"入力ファイルが見つかりません: {input_path.resolve()}")
        return

    # 日本語CSV(Shift_JIS系)想定 → cp932 で開く
    with input_path.open("r", newline="", encoding="cp932") as fin, \
         output_path.open("w", newline="", encoding="cp932") as fout:

        reader = csv.reader(fin)
        writer = csv.writer(fout)

        # 1行目(ヘッダ)を書き出し
        try:
            header = next(reader)
        except StopIteration:
            print("入力ファイルにデータがありません。")
            return

        writer.writerow(header)

        # データ部分から先頭 MAX_ROWS 行だけを書き出し
        for i, row in enumerate(reader, start=1):
            if i > MAX_ROWS:
                break
            writer.writerow(row)

    print(f"ヘッダ+先頭{MAX_ROWS}行を {output_path.resolve()} に出力しました。" )


if __name__ == "__main__":
    main()

まとめ

ちょっとしたTipsですが、同じ状況の方の参考になれば幸いです。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?