我有一个包含以下值的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
请帮我解决这个问题。
答案 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"'''
,即引号内的所有字母数字字符。结果是每个拆分的列表。然后,对于导致第一次拆分的每个列表,您将再次拆分,这次是','
。然后你把列表弄平。