Python编程快速上手——正则表达式查找功能案例分析


Posted in Python onFebruary 28, 2020

本文实例讲述了Python正则表达式查找功能。分享给大家供大家参考,具体如下:

题目如下:

  • 编写一个程序,打开文件夹中所有的.txt文件,查找匹配用户提供的正则表达式的所有行。结果应该打印到屏幕上。

思路如下:

  • 程序需要做的事情如下:
    遍历文件夹得到所有.txt文件名
    打开所有.txt文件,正则表达式进行模式匹配
    查找结果显示到屏幕
  • 代码需要做的事情如下:
    导入re,os模块
    定义正则表达式函数
    函数内进行正则表达式匹配,并返回匹配所在行列表
    for调用os.listdir(path),生成.txt文件名列表
    for循环打开所有.txt文件
    用户输入需要查找的字符串
    for循环遍历函数返回结果
    输出结果到屏幕

代码如下:

import os, re

def fileRex(inputStr,txtLines):
  txtRex = re.compile(r'{0}'.format(inputStr)) #正则表达式对象
  blockList = []
  i = 0
  for t in txtLines:
    try:
      mo1 = txtRex.search(t)
      mo1.group()
      #search()方法匹配成功生成match对象,group()返回匹配到的对象,匹配成功即表示这一行为需要查找结果,添加到列表
      i += 1 #计数
      blockList.append(t)
    except:
      continue
      #search()方法未匹配成功会报错,程序崩溃,因此需要except加上continue,进入下一次循环
  print("匹配到的模式个数:",i)
  return blockList


nameList = [] #创建文件名列表

file = input("请输入文件夹绝对路径(如:C:\\Users\\Administrator\\Desktop\\exam):") #\\转义字符相当于 \
for fileName in os.listdir(file): #os.listdir()方法遍历文件夹
  p = 0
  if fileName.endswith('.txt'): #enswith方法,判断字符串结尾,检查文件名后缀是不是.txt文本文件
    nameList.append(fileName) #添加到文件名列表
    p += 1
  else:
    continue
print("找到的文本文件个数: {0} !文件有:{1}".format(p,nameList))
txtLines = [] #创建存放文本行的列表
for i in nameList:
  txtFile = open('{0}\\{1}'.format(file,i)) #open函数创建file对象
  txtLines += txtFile.readlines() #readlines返回列表,+ 号连接返回的列表
print("文本文件行列表:\n",txtLines) #输出文本行列表

inputStr = input("请输入要查找的字符串:")

for k in fileRex(inputStr,txtLines): #调用函数,循环遍历返回的列表
  k = k.strip('\n') #去掉列表字符串中的空格
  print("含有字符 “{0}” 的文本行有:{1}".format(inputStr,k)) #输出查找结果

输出结果如下:

Python编程快速上手——正则表达式查找功能案例分析

Python 相关文章推荐
Python单链表简单实现代码
Apr 27 Python
单链表反转python实现代码示例
Feb 08 Python
详解Python3中的迭代器和生成器及其区别
Oct 09 Python
pygame实现雷电游戏雏形开发
Nov 20 Python
Django框架模板介绍
Jan 15 Python
Django xadmin开启搜索功能的实现
Nov 15 Python
pytorch 改变tensor尺寸的实现
Jan 03 Python
如何实现在jupyter notebook中播放视频(不停地展示图片)
Apr 23 Python
Keras 实现加载预训练模型并冻结网络的层
Jun 15 Python
使用python实现下载我们想听的歌曲,速度超快
Jul 09 Python
详解Python GUI编程之PyQt5入门到实战
Dec 10 Python
Python实现将多张图片合成MP4视频并加入背景音乐
Apr 28 Python
利用python画出AUC曲线的实例
Feb 28 #Python
Python编程快速上手——选择性拷贝操作案例分析
Feb 28 #Python
AUC计算方法与Python实现代码
Feb 28 #Python
Python编程快速上手——Excel表格创建乘法表案例分析
Feb 28 #Python
Python计算IV值的示例讲解
Feb 28 #Python
Python编程快速上手——PDF文件操作案例分析
Feb 28 #Python
Python自动采集微信联系人的实现示例
Feb 28 #Python
You might like
第十三节--对象串行化
2006/11/16 PHP
为IP查询添加GOOGLE地图功能的代码
2010/08/08 PHP
PHP按行读取、处理较大CSV文件的代码实例
2014/04/09 PHP
jQuery使用手册之一
2007/03/24 Javascript
一个很酷的拖动层的js类,兼容IE及Firefox
2009/06/23 Javascript
JS图片预加载 JS实现图片预加载应用
2012/12/03 Javascript
Javascript模块化编程(三)require.js的用法及功能介绍
2013/01/17 Javascript
jquery.cookie() 方法的使用(读取、写入、删除)
2013/12/05 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
2014/06/06 Javascript
Node.js中对通用模块的封装方法
2014/06/06 Javascript
JavaScript中的类与实例实现方法
2015/01/23 Javascript
辨析JavaScript中的Undefined类型与null类型
2016/05/26 Javascript
js实现各种复制到剪贴板的方法(分享)
2016/10/27 Javascript
Input文本框随着输入内容多少自动延伸的实现
2017/02/15 Javascript
vue组件jsx语法的具体使用
2018/05/21 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
2018/11/05 Javascript
小程序转发探索示例
2019/02/19 Javascript
Vue传参一箩筐(页面、组件)
2019/04/04 Javascript
基于纯JS实现多张图片的懒加载Lazy过程解析
2019/10/14 Javascript
用Python编写一个简单的俄罗斯方块游戏的教程
2015/04/03 Python
python 默认参数问题的陷阱
2016/02/29 Python
浅析Python 中整型对象存储的位置
2016/05/16 Python
python 匹配url中是否存在IP地址的方法
2018/06/04 Python
使用selenium模拟登录解决滑块验证问题的实现
2019/05/10 Python
django实现类似触发器的功能
2019/11/15 Python
Python爬取豆瓣视频信息代码实例
2019/11/16 Python
Django限制API访问频率常用方法解析
2020/10/12 Python
澳大利亚天然护肤品、化妆品和健康产品一站式商店:Nourished Life
2018/12/02 全球购物
美赞臣营养马来西亚旗舰店:Enfagrow马来西亚
2019/07/26 全球购物
物流专业大学生职业生涯规划书范文
2014/01/15 职场文书
记帐员岗位责任制
2014/02/08 职场文书
培训讲师岗位职责
2014/04/13 职场文书
大学生入党推荐书范文
2014/05/17 职场文书
机关保密工作承诺书
2015/05/04 职场文书
教师工作证明范本
2015/06/12 职场文书
Python的代理类实现,控制访问和修改属性的权限你都了解吗
2022/03/21 Python