2011-08-02 112 views
27

我正嘗試使用以下腳本創建一個包含Python中字符串列表內容的csv文件。但是,當我檢查我的輸出文件時,事實證明每個字符都以逗號分隔。我如何指示CSV.writer爲列表中的每個字符而不是每個字符分隔字符?在這種情況下,我在Snow Leopard上使用Python 2.6。在Python中將字符串列表寫入Excel CSV文件

我檢查了Python指導,找不到具體的事情:
http://www.python.org/dev/peps/pep-0305/#managing-different-dialects

import csv 

# Define Data 
RESULTS = ['apple','cherry','orange','pineapple','strawberry'] 

# Open File 
resultFyle = open("output.csv",'wb') 

# Create Writer Object 
wr = csv.writer(resultFyle, dialect='excel') 

# Write Data to File 
for item in RESULTS: 
    wr.writerow(item) 
+2

我擅長的是默認的話,你並不需要指定它。 – agf

回答

51

方法採用可迭代的參數。您的結果集必須是列表(列)的列表(行)。

csvwriter.writerow(row) 

寫行參數筆者的文件對象,根據當前方言格式化。

執行下列任:

import csv 
RESULTS = [ 
    ['apple','cherry','orange','pineapple','strawberry'] 
] 
with open("output.csv",'wb') as resultFile: 
    wr = csv.writer(resultFile, dialect='excel') 
    wr.writerows(RESULTS) 

或:

import csv 
RESULT = ['apple','cherry','orange','pineapple','strawberry'] 
with open("output.csv",'wb') as resultFile: 
    wr = csv.writer(resultFile, dialect='excel') 
    wr.writerow(RESULT) 
+1

鏈接到文檔:[csv模塊,作家對象](http://docs.python.org/library/csv.html?highlight=csv#writer-objects) – crashmstr

+0

@Andrew:第二個也適用,如果你需要寫一行,這可能更合適(如果解決了問題,您可能希望將答案標記爲已接受)。 – GaretJax

+0

@crashmstr:謝謝,也添加了內聯鏈接。 – GaretJax

14

很簡單修復,你只需要轉向writerow到列表中的參數。

for item in RESULTS: 
    wr.writerow([item,]) 
3

我知道我有點晚了,但是這是我發現的作品(並且不需要使用csv)是寫一個for循環,寫到你的文件列表中的所有元素。

# Define Data 
RESULTS = ['apple','cherry','orange','pineapple','strawberry'] 

# Open File 
resultFyle = open("output.csv",'w') 

# Write data to file 
for r in RESULTS: 
    resultFyle.write(r + "\n") 
resultFyle.close() 

我不知道,如果這個解決方案是比任何已經提供的那些好,但它更緊​​密地反映了原來的邏輯,所以我想我會分享。

0

一個示例 - 使用布爾列寫入多行(使用GaretJax和Eran的上述示例?)。

import csv 
RESULT = [['IsBerry','FruitName'], 
      [False,'apple'], 
      [True, 'cherry'], 
      [False,'orange'], 
      [False,'pineapple'], 
      [True, 'strawberry']] 
with open("../datasets/dashdb.csv", 'wb') as resultFile: 
    wr = csv.writer(resultFile, dialect='excel') 
    wr.writerows(RESULT) 

結果:

df_data_4 = pd.read_csv('../datasets/dashdb.csv') 
df_data_4.head() 

輸出:

IsBerry FruitName 
    0 False apple 
    1 True cherry 
    2 False orange 
    3 False pineapple 
    4 True strawberry