如果我们要打印包含某关键字的行,在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这个函数,这个函数跟上面的判断是一样的,只要有一个关键字存在,这行就会被打印出来,简单吧?


©著作权归作者所有:来自51CTO博客作者mb5fdb12e4adbb2的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. python验证用户名和密码
  2. 控制器访问与参数解析类以及api天气接口实现输入城市查询天气
  3. TensorFlow-平面曲线拟合
  4. C/C++实现在一组排列好的数中插入一组数,并按照原先排列方式进行
  5. 我的第30个代码
  6. 数据结构与算法专题——第十题 输入法跳不过的坎-伸展树
  7. php基础知识:接口、抽象类
  8. PHP基础概念:继承、扩展和trait方法集
  9. 第一次写了个关机小程序,结果把自己的电脑搞关机了, 输入“我是大

随机推荐

  1. utf8_unicode_ci、utf8_general_ci区别
  2. MySQL-数据库安装及基本SQL语句
  3. 已开启GTID的情况下的binlog复制切换到GT
  4. 在代码点火器中从mysql迁移到postgresql
  5. MySql 修改列的注释信息的方法
  6. MySQL客户端输出窗口显示中文乱码问题解
  7. 通过php mysql更新表
  8. MySQL(Navicat)运行.sql文件时报错:[Err]
  9. 数据库中的结果分页如何工作?
  10. 两个MYSQL表关联查询