我想分别读取 csv 文件的两列,但是当我编写如下代码时,python 只显示第一列,第二列不显示任何内容,但在 csv 文件中,第二列也有很多行。
import csv
import pprint
f = open("arachnid.csv", 'r')
read = csv.DictReader(f)
for i in range(3):
read.next()
for i in read:
pprint.pprint(i["binomialAuthority_label"])
for i in read:
pprint.pprint(i["rdf-schema#label"])
最佳答案
这样做的原因是,当您按照当前的方式使用 DictReader 时,它将创建所谓的迭代器/生成器。因此,当您对其进行一次迭代时,您无法按照当前的方式再次对其进行迭代。
如果您想保持逻辑不变,您实际上可以在文件读取器对象上调用seek(0)来重置其位置,如下所示:
f.seek(0)
下次你迭代你的 dictreader 对象时,它会给你你正在寻找的东西。所以您感兴趣的代码部分是这样的:
for i in read:
pprint.pprint(i["binomialAuthority_label"])
# This is where you set your seek(0) before the second loop
f.seek(0)
for i in read:
pprint.pprint(i['rdf-schema#label'])
关于python - 如何在python中分别读取csv文件的两个字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33125020/