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使用Berkeley DB数据库实例
Sep 26 Python
使用Python抓取模板之家的CSS模板
Mar 16 Python
详解Python中open()函数指定文件打开方式的用法
Jun 04 Python
python使用mysql的两种使用方式
Mar 07 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
Oct 21 Python
python使用for循环计算0-100的整数的和方法
Feb 01 Python
基于Numpy.convolve使用Python实现滑动平均滤波的思路详解
May 16 Python
Java如何基于wsimport调用wcf接口
Jun 17 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
Jun 23 Python
python3.7添加dlib模块的方法
Jul 01 Python
pytorch 如何把图像数据集进行划分成train,test和val
May 31 Python
Github 使用python对copilot做些简单使用测试
Apr 14 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
php定时计划任务的实现方法详解
2013/06/06 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
2015/10/20 PHP
PHP针对多用户实现更换头像功能
2016/09/04 PHP
php多文件打包下载的实例代码
2017/07/12 PHP
JavaScript中出现乱码的处理心得
2009/12/24 Javascript
jQuery实战之仿淘宝商城左侧导航效果
2011/04/12 Javascript
解决遍历时Array.indexOf产生的性能问题
2012/07/03 Javascript
JS中的log对象获取以及debug的写法介绍
2014/03/03 Javascript
js实现div闪烁原理及实现代码
2014/06/24 Javascript
javascript制作的cookie封装及使用指南
2015/01/02 Javascript
javascript闭包(Closure)用法实例简析
2015/11/30 Javascript
实例详解jQuery Mockjax 插件模拟 Ajax 请求
2016/01/12 Javascript
jQuery实现只允许输入数字和小数点的方法
2016/03/02 Javascript
jQuery遍历json的方法分析
2016/04/16 Javascript
jQuery监听文件上传实现进度条效果的方法
2016/10/16 Javascript
jQuery实现简单的回到顶部totop功能示例
2017/10/16 jQuery
使用Bootstrap和Vue实现用户信息的编辑删除功能
2017/10/25 Javascript
JavaScript设计模式之职责链模式应用示例
2018/08/07 Javascript
Node中对非阻塞I/O、事件循环的知识点总结
2020/01/05 Javascript
微信小程序如何加载数据库真实数据的实现
2020/03/04 Javascript
如何在node环境实现“get数据解析”代码实例
2020/07/03 Javascript
el-form 多层级表单的实现示例
2020/09/10 Javascript
Python简单实现查找一个字符串中最长不重复子串的方法
2018/03/26 Python
python3 动态模块导入与全局变量使用实例
2019/12/22 Python
UGG雪地靴德国官网:UGG德国
2016/11/19 全球购物
iostream与iostream.h的区别
2015/01/16 面试题
物流管理专业求职信
2014/05/29 职场文书
幼师求职自荐信
2014/05/31 职场文书
2014年秋季开学典礼主持词
2014/08/02 职场文书
商场促销活动策划方案
2014/08/18 职场文书
2015年高三年级组工作总结
2015/07/21 职场文书
师德培训心得体会2016
2016/01/09 职场文书
小学2016年“我们的节日·重阳节”活动总结
2016/04/01 职场文书
高中班主任寄语
2019/06/21 职场文书
JavaScript实现贪吃蛇游戏
2021/06/16 Javascript
动视暴雪取消疫苗禁令 让所有员工返回线下工作
2022/04/03 其他游戏