gpt4 book ai didi

python - CSVWriter 在我写它的那一刻没有将数据保存到文件中

转载 作者:IT老高 更新时间:2023-10-28 21:51:06 26 4
gpt4 key购买 nike

Python 新手对 csv 模块感到有些沮丧。以这种速度,如果我自己编写文件解析器会更容易,但我想以 Python 的方式做事......

我编写了一个小 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 进程对文件持有锁,所以我假设我负责释放锁。以下是我的问题:

  1. 如何让 python 刷新到磁盘
  2. 如何关闭在 csv.writer() 方法中打开的文件?

最佳答案

使用

with open('myfile.csv','wb') as myfile:
wrtr = csv.writer(myfile, delimiter=',', quotechar='"')
for row in rows:
wrtr.writerow([row.field1,row.field2,row.field3])
myfile.flush() # whenever you want

myfile = open('myfile.csv','wb')
wrtr = csv.writer(myfile, delimiter=',', quotechar='"')
for row in rows:
wrtr.writerow([row.field1,row.field2,row.field3])
myfile.flush() # whenever you want, and/or
myfile.close() # when you're done.

第一种方法的好处是,如果出现异常,您的文件也会自动正确关闭。

如果你希望你的文件对象是匿名的,那么它只会在程序退出时被关闭。何时或是否刷新取决于操作系统 - 因此可能永远不会直到退出。

关于python - CSVWriter 在我写它的那一刻没有将数据保存到文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3976711/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com