Fra*_*ova 4 python csv python-3.x
我正在使用Python 3测试一些非常简单的代码.出于某种原因,下面的代码生成一个空输出,而不是写一行
import csv
output = open('hello world.csv', 'w',newline='')
wr = csv.writer(output, quoting=csv.QUOTE_ALL)
wr.writerow('hello world')
Run Code Online (Sandbox Code Playgroud)
如果我在解释器中尝试命令,则 .writerow()返回一个数字.以下示例是文档页面中使用的示例:
>> 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
Run Code Online (Sandbox Code Playgroud)
writerow实际上写行但是eggs.csv由于文件缓冲你没有看到它们.要查看文件中的内容,请关闭它或调用.flush()方法.如果使用with-statement,则即使出现错误,文件也会自动关闭.
它没有记录(报告错误?)但writerow返回fileobj.write()方法的结果,即在这种情况下写入文件的字符数.
您应该将形成一行的字段序列传递给writerow方法:
writer.writerow(['field 1', 'field 2', 'etc'])
Run Code Online (Sandbox Code Playgroud)
如果传递字符串而不是列表,则字符串将被解释为字段序列,其中每个字段都是单个字符:
#XXX this is probably not what you want, don't do it
writer.writerow('abc')
# -> a,b,c
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3363 次 |
| 最近记录: |