Python新手对csv模块感到有些沮丧。以这样的速度,如果我自己编写文件解析器会更容易,但我想用Pythonic的方式来做事情......CSVWriter不保存数据到文件 - 为什么?
我写了一个小小的Python脚本,应该将我的数据保存到CSV文件中。
这里是我的代码片段:
import csv
wrtr = csv.writer(open('myfile.csv','wb'),delimiter=',', quotechar='"')
for row in rows:
wrtr.writerow([row.field1,row.field2,row.field3])
文件myfile.csv创建成功,但它是空的 - 但上有一个锁,因为它仍在使用由Python程序。看起来数据已经写入了内存中的文件,但是它还没有被刷新到磁盘。
由于Python进程正在对该文件进行锁定,因此我认为我负责释放该锁。这里是我的问题:
- 如何让Python刷新到磁盘
- 如何关闭是在csv.writer()方法打开的文件吗?
“”“如果我自己写文件解析器,它会更容易”“” - 我会在“最后的词语”下面提交它。 – 2010-10-20 11:08:34
主要的直觉是在你写入csv writer后文件句柄仍然是打开的。如果您在外部删除“打开”呼叫并保留一个单独的文件句柄,并将其传递到csv.writer(csvFile,...),那么您可以在完成时关闭该文件句柄并冲洗。 Tim提供的答案解释了一些很好的方法来做到这一点。 – mindthief 2011-11-15 00:06:13
csvwriter缺少冲洗方法,这是一个疏忽。 – 2015-04-19 21:04:04