gpt4 book ai didi

python - .writerow() csv 返回一个数字而不是写入行

转载 作者:太空宇宙 更新时间:2023-11-03 13:03:17 25 4
gpt4 key购买 nike

我正在用 Python 3 测试一些非常简单的代码。出于某种原因,下面的代码生成一个空输出,而不是写一行

import csv

output = open('hello world.csv', 'w',newline='')
wr = csv.writer(output, quoting=csv.QUOTE_ALL)

wr.writerow('hello world')

如果我在解释器中尝试命令,.writerow() 返回一个数字。以下示例是 documentation page 中使用的示例:

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

最佳答案

writerow 实际上写入行,但由于文件缓冲,您在 eggs.csv 中看不到它们。要查看文件中的内容,请关闭它或调用 .flush() 方法。如果您使用 with 语句,那么即使出现错误,文件也会自动关闭。

它没有记录(report a bug?)但是 writerow 返回 fileobj.write() 方法的结果,即在这种情况下写入文件的字符数。

您应该将形成一行的一系列字段传递给 writerow 方法:

writer.writerow(['field 1', 'field 2', 'etc'])

如果您传递一个字符串而不是一个列表,那么该字符串将被解释为一系列字段,其中每个字段都是一个单独的字符:

#XXX this is probably not what you want, don't do it
writer.writerow('abc')
# -> a,b,c

关于python - .writerow() csv 返回一个数字而不是写入行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12770213/

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