我有以下情况:我正在编写一个csv文本文件,我不会丢失写在其上的数据。
但是,在以下情况下,我会丢失我写入第四次迭代的所有内容。
import csv
import time
file_reference = open('result.csv', 'w', newline='')
file_csv = csv.writer(file_reference, delimiter=';', quoting=csv.QUOTE_MINIMAL)
for i in range(50):
file_csv.writerow([i])
time.sleep(1)
print('...')
if i == 4:
raise ValueError('foo')
file_reference.close()
如何将每个执行编写器的文本文件中写入的数据写入磁盘?
答案 0 :(得分:0)
为什么要在for循环中引发ValueError?是不是更容易打破for循环刷新/关闭文件然后引发ValueError?但是,如果必须在for循环中引发异常,为什么不使用上下文管理器?
import csv
import time
with open('result.csv', 'w') as file_reference:
file_csv = csv.writer(file_reference, delimiter=';', quoting=csv.QUOTE_MINIMAL)
for i in range(50):
file_csv.writerow([i])
time.sleep(1)
print('...')
if i == 4:
raise ValueError('foo')
file_reference.close()