pythonで26456件あるデータを350件ずつ分割したいと考えています。
しかし、下記のソースコードを動作させても、11個目までは正常に動作をするのですが、それ以降はcsvファイルは作られているものの、中に書き込みがされておらず、空のファイルが出力されています。なぜ書き込みがされないのでしょうか?
#ソースコード
import csv csv_file = open("./posneg_train.csv", "r", encoding="ms932", errors="", newline="" ) f1 = csv.reader(csv_file, delimiter=",", doublequote=True, lineterminator="\r\n", quotechar='"', skipinitialspace=True) for i in range(76): stri = str(i+1) count = 0 start = 350 * i end = 350 + start + 1 data = open('posneg_train_'+ stri + '.csv','w',newline="") for row in f1: if count < start: count += 1 continue if count >= end: break if count == start: w = csv.writer(data) w.writerow([row[0],row[1]]) count += 1 data.close()
#備考
if i == 11: print(count)
という文を
for row in f1:
のあとに挿入してみた結果、countの値が3333で止まっていることが確認されました。
if i == 12: print(count)
にしたらcountの値が出力すらされませんでした。
#解決後のプログラム
import csv csv_file = open("./posneg_train.csv", "r", encoding="ms932", errors="", newline="" ) f1 = csv.reader(csv_file, delimiter=",", doublequote=True, lineterminator="\r\n", quotechar='"', skipinitialspace=True) i = 0 stri = str(i+1) count = 0 start = 0 end = 350 data = open('posneg_train_'+ stri + '.csv','w',newline="") for row in f1: if count < start: count += 1 continue if count >= end: data.close() i += 1 stri = str(i+1) start = count end = start + 350 data = open('posneg_train_'+ stri + '.csv','w',newline="") if count == start: w = csv.writer(data) w.writerow([row[0],row[1]]) count += 1 csv_file = open("./posneg_test.csv", "r", encoding="ms932", errors="", newline="" ) f2 = csv.reader(csv_file, delimiter=",", doublequote=True, lineterminator="\r\n", quotechar='"', skipinitialspace=True) i = 0 stri = str(i+1) count = 0 start = 0 end = 350 data = open('posneg_test_'+ stri + '.csv','w',newline="") for row in f2: if count < start: count += 1 continue if count >= end: data.close() i += 1 stri = str(i+1) start = count end = start + 350 data = open('posneg_test_'+ stri + '.csv','w',newline="") if count == start: w = csv.writer(data) w.writerow([row[0],row[1]]) count += 1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/26 09:14
2018/11/26 09:16
2018/11/27 09:02
2018/11/27 09:04