使用csv wri后Python-csv文件为空

2024-10-04 05:33:27 发布

您现在位置:Python中文网/ 问答频道 /正文

Python新手来了。我试图解决在一个更大的程序中写入csv文件的问题,并决定回到基础上来尝试找到问题。

我在Python csv读写文档中运行了一个精确的代码示例:

import csv     
spamWriter = csv.writer(open('eggs.csv', 'w'), delimiter=' ', quotechar='|')    
spamWriter.writerow(['Spam'] * 5 + ['Baked Beans'])
spamWriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])

当我转到我的工作目录并单击“eggs.csv”时,文件是空的,报告为“0 kb”。同样的事情也发生在我的大程序中(空的csv文件)。我是不是遗漏了一些显而易见的东西?

谢谢你!

编辑
我刚试着修改代码:

import csv
csvOut=open("eggs.csv", "wb")
spamWriter = csv.writer(csvOut, delimiter=' ', quotechar='|')
spamWriter.writerow(['Spam'] * 5 + ['Baked Beans'])
spamWriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])
csvOut.close()

这起作用了。我不知道为什么第一个对我不起作用。


Tags: 文件csv代码import程序openspambaked
3条回答

你发的代码对我很有用。

您确定运行该脚本的目录实际上是您正在检查的目录吗?(你每次尝试之前都会删除“eggs.gsv”吗?)

我不太熟悉csv模块,但这看起来确实像一个文件IO问题,而不是csv问题。

在文件中看不到任何内容的原因是python仍然打开文件。你得把它关上。

所以与其这样做:

spamWriter = csv.writer(open('eggs.csv', 'w'), delimiter=' ', quotechar='|')

请改为:

f = open('eggs.csv', 'w')
spamWriter = csv.writer(f, delimiter=' ', quotechar='|')
# the rest of your code
f.close()

现在你应该在eggs.csv中看到你想要什么了

希望这有帮助

那密码有效。你确定你的操作系统不仅仅是舍入CSV大小——毕竟,它只有几个字节!

您可以尝试print(open("eggs.csv").read())查看文件是否实际为空,或者通过命令行more eggs.csv

相关问题 更多 >