参见英文答案 > Skip first couple of lines while reading lines in Python file 8个
我正在使用csv库来解析文件.我需要跳过6行并直接进入第7行并解析其余部分.我能够运行reader.next()6次,但看起来很奇怪:
reader = csv.reader(csvfile)
reader.next()
reader.next()
reader.next()
reader.next()
reader.next()
reader.next()
for row in reader:
print row
所以我想知道是否有办法以另一种方式跳过6行?
最佳答案
是.使用itertools.islice:
from itertools import islice
reader = csv.reader(csvfile)
for row in islice(reader,7,None):
print row
这个islice需要一个iterable,然后下面的位置参数就像典型的list-slicing start-stop-step一样工作:
>>> x = list(range(14))
>>> x[7:None]
[7,8,9,10,11,12,13]
>>> x[7:]
[7,13]
>>>
>>> list(islice(x,None))
[7,13]
但是,不允许使用负索引.
>>> list(islice(x,-1,None))
Traceback (most recent call last):
File "
但是,它仍然非常灵活,因此,例如,从第一行开始每隔一行(即偶数行):
for row in islice(reader,None,2):
print row
或者从第二行开始的每隔一行(即奇数行):
for row in islice(reader,1,2):
print row