2013-08-07 126 views
4

所以我想創建一個真值表,我可以將其導出爲csv或excel格式。我是Python的新手,如果我的代碼太糟糕,請耐心等待。將Python列表導出到csv

我開始用這個作爲一些研究之後,我對真值表代碼:

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中打開文件時,在我的記錄之間插入了空行。 我嘗試了提示,我在網上找到,我需要從ω到WB改變輸入類型,但我得到這個錯誤,當我做:

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

我不知道在哪裏可以從這裏去,因爲我覺得像我非常接近將它變成我想要的格式。

回答

7

我懷疑你使用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

+0

非常感謝!這正是我期待的! :d – Perdue

1

如果不使用python3,你應該打開文件"wb"

import csv 

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