大きなCSVファイルを読み込んだ後にサブ(CSV)ファイルを書き込む単純なPythonスクリプトがあります。CSVファイルで完全な出力を得るためにPythonスクリプトを2回実行する必要がある
import csv
import os
large_file = "D:\Total_data.csv"
with open(large_file, 'rb') as csvfile:
reader = csv.reader(csvfile, delimiter='|')
path = "D:/CSV_Files/"
if not os.path.exists(path):
os.makedirs(path)
writer1 = csv.writer(open(path+"A1_subfile"+".csv", 'wb'), delimiter = '|')
#writing data to the CSV file only if first column has value 'A1'
for row in reader:
if (row[0]=='A1'):
writer1.writerow(row)
csvfile.close()
私が直面しています問題は、私は初めてのスクリプトを実行すると、一部の行が(たとえばのみ96または97行が100行のうち、表示されます)A1_subfile.csvファイルには来ていないということです。
2回目の正確なSAMEスクリプトを実行すると、すべての行がサブファイルに表示されます(現在100行すべてが表示されます)。
初めて実行してから数分間待っても、新しいCSVファイルで完全な出力が得られません。 コードを2回だけ実行すれば、すぐに完全な出力を見ることができます。
私は検索しましたが、この問題を乗り越えることはできませんでした。 これを克服するのを手伝ってください。
なぜ 'with'を使用して1つのファイルを開きますが、他のファイルは開きませんか?ファイルを適切に閉じてください。 –
[CSVWriterのデータをファイルに保存しない - WHY?](http://stackoverflow.com/questions/3976711/csvwriter-not-saving-data-to-file-why) – cdarke
http:// stackoverflow。 com/questions/13675072/csvs-writerow-in-python-doesnt-work-most-of-timeおよびhttp://stackoverflow.com/questions/11454453/writing-csv-files-in-python-files-残っているのは空白の末尾にある – cdarke