从csv读取python中的标题

时间:2014-03-10 12:51:44

标签: python parsing csv

有没有办法以更有效的方式将标头数组注入标头向量而不使用任何软件包,如csv,pandas等...?

data = []
b = 1
with open(datafile, "rb") as f:
    for line in f:
        if b:
            header=line.strip('\n').split(',')
            b = 0
            continue
        entries=line.strip('\n').split(',')
        data.append(dict(zip(header,entries)))
        #print data
return data

2 个答案:

答案 0 :(得分:1)

如果您不需要两次浏览同一个文件,那么产生值通常比返回列表更好。

with open(datafile, "rb") as f:
    header = next(f).strip('\n').split(',')
    for line in f:
        entry=line.strip('\n').split(',')
        yield dict(zip(header,entry))

答案 1 :(得分:0)

我只是使用list comprehension重写你的代码。我不知道它是快还是慢。我认为这不容易阅读。仅用于教育目的。

datafile = "hoge.csv"
l = [line.strip('\n').split(',') for line in open(datafile, "rb")]
data = [dict(zip(l[0],r)) for r in l[1:]]