将Python列表导出为csv文件

5

我正在尝试创建一个真值表,可以将其导出为csv或excel格式。由于我是Python的新手,请见谅如果我的代码很糟糕。

在一些研究后,我使用以下代码作为真值表的起点:

import itertools 
table = list(itertools.product([False, True], repeat=6)) 
print(table)

然后我看到了这段代码:

import csv
import sys
with open('C:\\blahblah5.csv','w') as fout:
writer = csv.writer(fout, delimiter = ',')
writer.writerows(table)

这让我接近以csv格式呈现真值表的目标,但是当我在Excel中打开文件时,我的记录之间会插入空行。

我尝试了一个在线提示,需要将输入类型从"w"更改为"wb",但是当我这样做时,会出现以下错误:

Traceback (most recent call last):
File "<pyshell#238>", line 3, in <module>
writer3.writerows(table)
TypeError: 'str' does not support the buffer interface

我不确定从这里该怎么办,因为我感觉离我想要的格式非常接近了。

2个回答

8

我猜你在使用Python 3。写 csv 文件的打开方式有一点改变:如果你写下以下代码:

with open("C:\\blahblah5.csv", "w", newline="") as fout:

它应该可以正常工作,生成一个类似于以下文件的文件

False,False,False,False,False,False
False,False,False,False,False,True
False,False,False,False,True,False
[etc.]

3
可以在内容中加入一个指向文档关于此的注释的链接(http://docs.python.org/3.3/library/csv.html#id3)。 - icktoofay

1

如果不使用Python3,您应该使用"wb"打开文件。

import csv

with open('C:\\blahblah5.csv','wb') as fout:
    writer = csv.writer(fout)
    writer.writerows(table)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接