python – 当我写它时,CSVWriter不保存数据到文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 当我写它时,CSVWriter不保存数据到文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1197字,纯文字阅读大概需要2分钟。
内容图文
![python – 当我写它时,CSVWriter不保存数据到文件](/upload/InfoBanner/zyjiaocheng/713/1596d3f8b8b94c548c52f4209122bf76.jpg)
Python新手对csv模块感到有点沮丧.按照这个速度,如果我自己编写文件解析器会更容易,但我想用Pythonic方式做事….
我写了一个小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()方法中打开的文件?
解决方法:
使用
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不保存数据到文件全部内容,希望文章能够帮你解决python – 当我写它时,CSVWriter不保存数据到文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。