是的。使用itertools.islice
:
from itertools import islice
reader = csv.reader(csvfile)
for row in islice(reader, 7, None):
print row
這islice
需要一個迭代,那麼下面的位置參數的工作很像典型的列表切片啓停步:
>>> x = list(range(14))
>>> x[7:None]
[7, 8, 9, 10, 11, 12, 13]
>>> x[7:]
[7, 8, 9, 10, 11, 12, 13]
>>>
>>> list(islice(x, 7, None))
[7, 8, 9, 10, 11, 12, 13]
但是,沒有負索引不允許的。
>>> list(islice(x, -1, None))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: Indices for islice() must be None or an integer: 0 <= x <= maxint.
>>>
但是,它仍然是非常靈活的,因此,例如,採取一切,其他行從第一個(即偶數行):
for row in islice(reader, None, None, 2):
print row
或者每隔一個行開始在第二行(即奇數行):
for row in islice(reader, 1, None, 2):
print row
爲什麼(6):reader.next()' – varela
也可以這樣做:對於列表中的行(閱讀器)[6:] - 但不是最有效的。 –