跳过可迭代对象的特定开始部分

有时在浏览一个文件时需要跳过某些特定内容,比如跳过注释部分,那要怎么实现呢

有test.txt文件:

跳过可迭代对象的特定开始部分

前面三行是注释,后面非注释,现在想跳过前面的注释部分,当然我们可以用常规方法,每一行判断是不是以#开关,

这里介绍的dropwhile方法会丢弃一些指定的不需要的项,并返回其他的项,直到可迭代对象的尾部

#!/usr/bin/env python
#coding:utf-8
#@Author:Andy
#Date: 2017/6/17


from itertools import dropwhile

with open('test.txt') as f:
	for line in dropwhile(lambda line: line.startswith('#'), f):
		print(line)

 输出:

Not comment

Not comment

 但是,如果仅仅是这样的效果,那只需要常规方法即可,根本没有引入这个模块的必要,那么 ,我修改这个文件内容,为下面这样,再看效果:

跳过可迭代对象的特定开始部分

运行结果是这样的:

跳过可迭代对象的特定开始部分

很显然,dropwhile仅仅将可替代对象的前面的特定行过滤掉了,面后面的则没有处理,这是常规方法所做不到的。