我正在尝试在 Windows 计算机上使用 Python 3.2 来编写一个简单的 CSV 文件,但是我没有运气。来自 Python 3.2 的 csv 模块文档:
>>> import csv
>>> spamWriter = csv.writer(open('eggs.csv', 'w'), delimiter=' ',
... quotechar='|', quoting=csv.QUOTE_MINIMAL)
>>> spamWriter.writerow(['Spam'] * 5 + ['Baked Beans'])
>>> spamWriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])
生成一个文件,每行以字节序列 \r\r\n
,因此当您使用 MS Excel 打开它时,看起来每一行都有一个额外的空行。这不是“CSV 文件”。
请注意,如果我在 Python 3.2 中尝试 Python 2.7 的相同示例(其中最大的区别是 'w'
vs 'wb'
对于文件模式),我在尝试时遇到错误 spamWriter.writerow
:
回溯(最近调用最后):文件“”,第 1 行,在 TypeError 中:’str’ 不支持缓冲区接口
如何在 Windows 计算机上使用 Python 3.2 编写简单的 CSV 文件?
原文由 Mike T 发布,翻译遵循 CC BY-SA 4.0 许可协议
文档说你应该使用
open('eggs.csv', 'w', newline='')
http://docs.python.org/py3k/library/csv.html#id2