当前位置: 首页 > 面试题库 >

CSVWriter在我写入数据时未将数据保存到文件

丁曦哲
2023-03-14
问题内容

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进程在文件上持有锁,因此我假设我负责释放锁。这是我的问题:

  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.

第一种方法的好处是,在发生异常的情况下,文件也会自动正确关闭。

如果您希望文件对象是匿名的,则仅在程序退出时将其关闭。什么时候刷新或是否刷新取决于操作系统-因此可能永远不会退出。



 类似资料:
  • 我正在编写一个文件编写器,它将ID和名称(这两个字符串)写入文本文件。这需要用户输入,然后将数据存储在txt文件中。但是,当我再次运行它时,任何新数据都会覆盖以前的数据,因此数据永远不会保存到txt文件中。 谁能告诉我如何保存这些数据,以便添加的任何新数据都存储在下一行,而不覆盖上一行? 谢啦

  • 问题内容: 我有这个项目: 导入文件 连接到SQL Server数据库 将所有数据转移到数据库中 文本文件按选项卡划分为四个字段,例如数据库。 我已经完成了使用富文本框并将所有数据保存在字符串中的第一步。我的想法是将字符串拆分为每行并将其保存在数组中,然后:如何拆分每一行,以便可以正确保存字段?如何将SQL Server上的数据库连接到C#上的项目? 问题答案: 让我们一次解决这一步骤… 获取数据

  • 问题内容: 我正在尝试将数据快速保存到plist文件中,但是读取plist时保存的数据没有显示出来。这是我正在使用的代码。 编辑:我听说做到这一点的最佳方法是写入documents目录,所以我的问题是我应该如何写入该目录中的文件? 问题答案: 显然该文件不在可写位置,因此我在documents目录中创建了该文件。 然后,必须从文档目录中读取它。

  • 本文向大家介绍python学习将数据写入文件并保存方法,包括了python学习将数据写入文件并保存方法的使用技巧和注意事项,需要的朋友参考一下 python将文件写入文件并保存的方法: 使用python内置的open()函数将文件打开,用write()函数将数据写入文件,最后使用close()函数关闭并保存文件,这样就可以将数据写入文件并保存了。 示例代码如下: 执行结果: 内容扩展: pytho

  • 要常常喜乐,不住地祷告,凡事谢恩,因为这是神在基督耶稣里向你们所定的旨意。不要消灭圣灵的感动,不要藐视先知的讲论。但要凡事察验,善美的要持守,各样的恶事要禁戒不作。(1 THESSALONIANS 5:16-22) 将数据存入文件 在《文件(1)》和《文件(2)》中,已经学习了如何读写文件。 程序执行结果,就是产生一些数据,一般情况下,这些数据数据要保存到磁盘中,最简单的方法就是写入到某个文件。但

  • 问题内容: 我正在尝试重组在Excel文件中组织降水数据的方式。为此,我编写了以下代码: 这段代码运行良好,通过Jupyter,我可以看到结果是不错的 但是,尝试将此数据帧保存到csv文件时遇到问题。 结果文件包含垂直索引列,看来我无法调用特定的单元格。 (希望有人可以帮助我解决这个问题)非常感谢! 问题答案: 全部在文档中。 您有兴趣跳过索引列,因此: 如果您还想跳过标题,请添加: 我不知道您的