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

我不知道从哪里开始,因为我觉得我很接近把它变成我想要的格式。

4

2 回答 2

8

我怀疑您使用的是 Python 3。您打开文件以编写csvs 的方式发生了一些变化:如果您编写

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.]
于 2013-08-07T03:57:42.733 回答
1

如果不使用 python3,您应该使用"wb".

import csv

with open('C:\\blahblah5.csv','wb') as fout:
    writer = csv.writer(fout)
    writer.writerows(table)
于 2013-08-07T06:32:09.717 回答