如何用python从csv文件中只读取特定范围的行?

时间:2015-04-16 12:47:45

标签: python python-3.x csv

我怎样才能在这个csv文件中读取5000到6000行?在这个时刻“读取行中的行:”当然会遍历所有行。

所以我有一句话:

with open('A.csv', 'rt') as f:
     reader = csv.reader(f, delimiter=';')
     for row in reader:
           response = urllib2.urlopen(row[12])

此代码用于打开特定的URL链接。

2 个答案:

答案 0 :(得分:5)

由于csv reader支持迭代,您可以使用itertools.islice对特定部分进行切片,然后循环遍历它。

from itertools import islice

with open('A.csv', 'rt') as f:
     reader = csv.reader(f, delimiter=';')
     for row in islice(reader,5000,6000):
           response = urllib2.urlopen(row[12])

答案 1 :(得分:1)

您可以在for循环中使用生成器enumerate

with open('A.csv', 'rt') as f:
     reader = csv.reader(f, delimiter=';')
     for row in (r for i, r in enumerate(reader) if 5000<=i<=6000):
           response = urllib2.urlopen(row[12])

由于csv.readerenumerate和生成器表达式本身都是生成器,因此您将一次只处理一个。