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()

这行得通。我不确定为什么第一个不适用于我。

最佳答案

我对csv模块不太熟悉,但这确实比csv问题更像是文件IO问题。

您在文件中看不到任何内容的原因是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中看到所需的内容

希望这可以帮助

10-07 19:49
查看更多