言語処理100本ノックやった 16
#16 ファイルをN分割する
# -*- coding: utf-8 -*- #行数カウント (cf. #10) fhand = open('hightemp.txt') n_line = 0 for line in fhand: n_line += 1 fhand.close() print n_line #24 N = input() #5 line_per_file = n_line/N remainder = n_line%N lines_per_file = [line_per_file + 1] * remainder\ + [line_per_file] * (N-remainder) print lines_per_file # [5, 5, 5, 5, 4] #Nで割り切れないときはあまりを前から足してく with open('hightemp.txt') as fhand: for i in xrange(N): filename = 'divided_0%d.txt' %i #divided_01.txt etc. with open(filename, 'w') as file_to_write: for loop in xrange(lines_per_file[i]): # loop回 行を読む→書きこむ line = fhand.readline() file_to_write.write(line.strip() + '\n')
実行するとこんな感じに
lines_per_file 作るところで時間かかった。この書き方でいいのかな
以上