如果我使用itertool中的islice从第5行开始,如何使用DictReader?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果我使用itertool中的islice从第5行开始,如何使用DictReader?相关的知识,希望对你有一定的参考价值。
我有一个CSV文件,其字段名从第5行开始。
例如,第5行:Name,Age,Gender,Height
第6行,依此类推:Steve,31,M,190
with open('AGM.csv', 'r') as f2:
csv_reader = csv.reader(f2)
for row in islice(csv_reader, 5, None):
csv_DicReader = csv.DictReader(row)
for lines in csv_DicReader:
print(lines)
输出是这样的:
OrderedDict([('Name', 'Age')])
OrderedDict([('Name', 'Gender')])
OrderedDict([('Name', 'Height')])
OrderedDict([('Steve', '31')])
OrderedDict([('Steve', 'M')])
OrderedDict([('Steve', '190')])
为什么会这样?
答案
我想这就是您想要做的。
with open('AGM.csv', 'r') as f2:
f = list(islice(f2, 4, None))
csv_DicReader = csv.DictReader(f)
for lines in csv_DicReader:
print(lines)
另一答案
IIUC,使用:
import csv
with open('AGM.csv', 'r') as f2:
for _ in range(4):
next(f2) # skip first four lines
# instantiate a dictreader after skipping first four lines
reader = csv.DictReader(f2)
for line in reader: # start reading from line 5
print(line)
或使用islice
,
with open('AGM.csv', 'r') as f2:
reader = csv.DictReader(islice(f2, 4, None))
for line in reader:
print(line)
此打印:
{'Name': 'Steve', 'Age': '31', 'Gender': 'M', 'Height': '190'}
...
...
以上是关于如果我使用itertool中的islice从第5行开始,如何使用DictReader?的主要内容,如果未能解决你的问题,请参考以下文章
itertools 的 islice(count()) vs range()