加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-16 22:52:44 所属栏目:Python 来源:网络整理
导读:参见英文答案 Skip first couple of lines while reading lines in Python file????????????????????????????????????8个 我正在使用csv库来解析文件.我需要跳过6行并直接进入第7行并解析其余部分.我能够运行reader.next()6次,但看起来很奇怪: reader = csv

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读