🐍
Pythonでファイル分割する
大容量ファイルを分割する機会があったのでPythonで実装してみた。
完成版
# 分割したいファイルとそのファイルのエンコードを設定
input_file_name = "test.csv"
output_file_name = "test_%d.csv"
file_encode = "shift_jis"
# file_encode = "utf-8"
# 1ファイルあたりの行数
line_max = 10000
# 初期化
line_index = 1
file_seqno = 1
# ファイルを読み込んでwhileで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()
デフォルトがutf-8なのでshift_jisなどはエンコーディング指定する必要があります。
Discussion