2014-11-24 168 views
0

我有一些數據需要寫入CSV文件。數據如下用逗號分隔數據CSV Python

A  ,B ,C 
a1,a2 ,b1 ,c1 
a2,a4 ,b3 ,ct 

第一列裏面有逗號。整個數據都列在我想要寫入CSV文件的列表中,並以逗號分隔,並且不會干擾列A中的數據。我該怎麼做?提到delimiter = ','大體上將其分成四列。

+0

那麼你的實際列表是什麼樣子?每一行都是一個字符串? – 2014-11-24 05:16:36

+0

@DavidMarx是的。它看起來像這樣['A','B','C'] ['a1,a2','b1','c1'] ['a2,a4','b3','ct'] – abn 2014-11-24 05:18:48

+0

@vanandy你的預期輸出是什麼? – 2014-11-24 05:36:44

回答

2

只需使用csv模塊中的csv.writer即可。

import csv 

data = [['A','B','C'] 
     ['a1,a2','b1','c1'] 
     ['a2,a4','b3','ct']] 

fname = "myfile.csv"  
with open(fname,'wb') as f: 
    writer = csv.writer(f) 
    for row in data: 
     writer.writerow(row) 

https://docs.python.org/2/library/csv.html#csv.writer

+0

filemode現在應該是''wb'''(你也可以使用'writer.writerows(data)'來避免明確的'for'循環) – 2014-11-24 05:24:28

+0

所以應該,謝謝。也沒有引用它:p – 2014-11-24 05:25:35

+0

如何從csv文件中獲取上述數據列表? – 2014-11-24 05:26:55

0

無需在第一列使用csv模塊自「」已經是你的數據的一部分,這將工作:

with open('myfile.csv', 'w') as f: 
    for row in data: 
     f.write(', '.join(row)) 
     f.write('\n') 
0

你可以嘗試下面。

代碼:

import csv 
import re 
with open('infile.csv', 'r') as f: 
    lst = [] 
    for line in f: 
     lst.append(re.findall(r',?(\S+)', line)) 
    with open('outfile.csv', 'w', newline='') as w: 
     writer = csv.writer(w) 
     for row in lst: 
      writer.writerow(row) 

輸出:

A,B,C 
"a1,a2",b1,c1 
"a2,a4",b3,ct 
+0

你需要什麼'sys'? – vks 2014-11-24 06:04:47