2014-11-24 119 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