Python - 文法 - ファイル入出力 - テキストファイル分割


 クラウディア


1. 概要
2. プログラム
3. 参考サイト

1. 概要

 ある、巨大なテキストファイルがありましてな。  これを、エディタでのぞいてみたいのですが、大きすぎて、開こうとしたら、エディタがこけたり、気の遠くなるような時間がかかります。  これはいかんと思いまして、ファイルを一定行で分割したいと思います。

2. プログラム

 参考サイト、もろパクリですが。

input_file_name = "/path/file_name.extend"
output_file_name = "/path/file_name_%d.extend"
file_encode = "utf-8"
line_max = 100000

line_index = 1
file_seqno = 1

input_file = open(input_file_name, encoding=file_encode)
output_file = open(output_file_name % file_seqno, "w", encoding=file_encode)
line = input_file.readline()

while line:
    if line_index > line_max:
        output_file.close()
        line_index = 1
        file_seqno += 1
        output_file = open(output_file_name % file_seqno, "w", encoding=file_encode)
    output_file.write(line)
    line_index += 1
    line = input_file.readline()

input_file.close()
output_file.close()
 1行目で、分割元のファイル名を指定します。  2行目で、分割先のファイル名を指定します。「_n」で、1から順番に分割番号を設定していきます。  3行目で、ファイルのエンコードを指定します。  4行目で、分割するときの 1ファイル分の行数を指定します。  やってみましたが、ばっちりでした。

3. 参考サイト

 本ページは、下記のサイトを参考にさせていただきました。
Python でファイル分割する