csv writer оставляет пустой выходной файл при сбое сценария python - PullRequest
0 голосов
/ 14 июля 2020

У меня есть сценарий, который выполняет некоторый анализ файлов, а затем записывает результаты в файл CSV. В псевдокоде:

while (there are still files to analyze): 
  do_analysis
  writer.writerow({... lots of columns names and the analysis results data... })

Если сценарий завершается, данные действительно находятся в файле csv. Но если скрипт вылетает - файлы пустые. Но строка writer.writerow () вызывается после завершения каждого анализа файла, поэтому я ожидал получить данные в файле csv для всех файлов, которые были проанализированы до Cra sh.

Что я делаете что-то не так?

1 Ответ

1 голос
/ 14 июля 2020

writerow не выполняет мгновенную запись в файл, большая часть записи выполняется при закрытии файла. Вы можете принудительно выполнить запись в файл с помощью

file.flush()

, делайте это всякий раз, когда хотите сохранить свои записи в файл.

Для получения дополнительной информации https://www.tutorialspoint.com/python/file_flush.htm

...