它没有什么区别,但是使用起来
enumerate要比使用自己的计数器变量稍微清洁一些。
for i, row in enumerate(reader): if i == N: print("This is the line.") print(row) break
您也可以使用
itertools.islice针对这种情况设计的方案-访问特定的可迭代切片,而无需将整个内容读入内存。它应该比遍历不需要的行更有效率。
with open(path, 'r') as f: N = int(input('What line do you need? > ')) print("This is the line.") print(next(itertools.islice(csv.reader(f), N, None)))
但是,如果您的CSV文件很小,只需将整个内容读入一个列表即可,然后您可以按照常规方式使用索引来访问该列表。这还有一个优点,您可以以随机顺序访问多个不同的行,而不必重置csv阅读器。
my_csv_data = list(reader)print(my_csv_data[N])
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)