如何使用python读取csv文件中包含逗号的单个值

时间:2011-10-13 06:32:53

标签: python csv

我有一个包含以下值的csv文件

"Spam2,pank",Spam3,Spam6,Spam7
Spam1,Spam5,Spam0,Spam9

我正在使用以下python代码来读取特定列

for line in open('D:\eggs2.csv','rb'):
    columns = line.split(",")
    print columns[0]

它给出的输出是: -

"Spam2
Spam1

虽然我期待:

Spam2,pank
Spam1

请帮我解决这个问题。

3 个答案:

答案 0 :(得分:7)

你不必重新发明轮子,python csv模块做得很好。

import csv

csv_file = open('D:\eggs2.csv','rb')
csv_reader = csv.reader(csv_file)
for row in csv_reader:
    print row[0]

csv_file.close()

@see python csv

答案 1 :(得分:0)

这取决于你想要将csv变成什么数据结构。这会将数据加载到元组列表中。每一行都是列表中的一个条目,每一行都是字符串值的元组。

我会创建一个辅助函数来读取我一直使用的文件

def readfile(filepath, delim):     
   with open(filepath, 'r') as f:         
      return [tuple(line.split(delim)) for line in f] 

data = readfile('D:\eggs2.csv', ',')

有使用的好处(它处理关闭,e.t.c的删除),但你需要使用Python 2.7 +

如果你想使用'|'将来,你不需要重新编写代码。

答案 2 :(得分:-1)

你可以拆分两次。首先,将其拆分为'''"\w"''',即引号内的所有字母数字字符。结果是每个拆分的列表。然后,对于导致第一次拆分的每个列表,您将再次拆分,这次是','。然后你把列表弄平。