有没有办法在Python中读取文件时跳过特定的行号?

前端之家收集整理的这篇文章主要介绍了有没有办法在Python中读取文件时跳过特定的行号?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

参见英文答案 > 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

猜你在找的Python相关文章