Python3:编写csv文件

新手上路,请多包涵

我正在尝试在 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 许可协议

阅读 504
2 个回答

这将适用于 Python 2 和 Python 3:

 if sys.version_info >= (3,0,0):
    f = open(filename, 'w', newline='')
else:
    f = open(filename, 'wb')

原文由 Dave Burton 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题