如何检查列表中的值是否存在文件每行中?
如果我们要打印包含某关键字的行,在shell下我们经常用的是grep,如果要过滤的字段较多,就会换成egrep,后面跟分字符来分割每个关键字,基本是这样的:
egrep "a|b|c" infile.txt
这样就能查到某文件那些行包含这个关键字,这么常用的功能我们用python怎么实现呢?总不能每次都用在脚本中调用系统命令吧?莫着急,我们今天就来看看如何用python来实现一个简单的egrep的功能,我们先看判断用户输入的值是否存在文件的每行中,存在就打印,基本代码如下:
with open('infile.txt', 'r') as fi:
for line in fi:
if 'a' in line or 'b' in line or 'c' in line or 'd' in line:
print line.strip()
就这么几行就搞定,再往下我们就学习一个更简单地方法,我们把用户的输入放入一个列表中,然后看看如何判断是否存在于文件每行中,代码如下:
find_str = ['a', 'b', 'c', 'd']
with open('infile.txt', 'r') as fi:
for line in fi:
if any(s in line for s in find_str):
print line.strip()
这里我将用户输入直接放入了列表中,关于解释器如何语法分析将用户输入生成一个列表本篇就不多说了,重要的学习思路和方法,后续方便运用,这段代码我们用到了any这个函数,这个函数跟上面的判断是一样的,只要有一个关键字存在,这行就会被打印出来,简单吧?
更多相关文章
- python验证用户名和密码
- 控制器访问与参数解析类以及api天气接口实现输入城市查询天气
- TensorFlow-平面曲线拟合
- C/C++实现在一组排列好的数中插入一组数,并按照原先排列方式进行
- 我的第30个代码
- 数据结构与算法专题——第十题 输入法跳不过的坎-伸展树
- php基础知识:接口、抽象类
- PHP基础概念:继承、扩展和trait方法集
- 第一次写了个关机小程序,结果把自己的电脑搞关机了, 输入“我是大