单独读取csv文件中的列名
我有一个包含以下各列的csv文件" title="csv文件">csv文件:
身份证,姓名,年龄,性别
接下来是以上各列的很多值。我试图单独读取列名称,并将其放在列表中。
我正在使用Dictreader,它给出了正确的细节:
with open('details.csv') as csvfile: i=["name","age","sex"]
re=csv.DictReader(csvfile)
for row in re:
for x in i:
print row[x]
但是我想做的是,我需要使用输入csv自动解析列列表(在上述情况下为“ i”),而不是在列表中进行硬编码。
with open('details.csv') as csvfile: rows=iter(csv.reader(csvfile)).next()
header=rows[1:]
re=csv.DictReader(csvfile)
for row in re:
print row
for x in header:
print row[x]
这给出了一个错误
Keyerrror:'name'
在行打印行[x]中。我要去哪里错了?是否可以使用Dictreader提取列名称?请帮助。谢谢并恭祝安康。
回答:
您可以使用该next()
函数读取标头,该函数将读者可迭代对象的下一行作为列表返回。然后您可以将文件的内容添加到列表中。
import csvwith open("C:/path/to/.filecsv", "rb") as f:
reader = csv.reader(f)
i = reader.next()
rest = list(reader)
现在,我将列的名称作为列表。
print i>>>['id', 'name', 'age', 'sex']
还要注意,reader.next()
它在python 3中不起作用。而是next()
在读取后立即使用inbuilt来获取csv的第一行,如下所示:
import csvwith open("C:/path/to/.filecsv", "rb") as f:
reader = csv.reader(f)
i = next(reader)
print(i)
>>>['id', 'name', 'age', 'sex']
以上是 单独读取csv文件中的列名 的全部内容, 来源链接: utcz.com/qa/423677.html