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中几个比较常见的名词解释
Jul 04 Python
Python自动化部署工具Fabric的简单上手指南
Apr 19 Python
Python实现批量读取图片并存入mongodb数据库的方法示例
Apr 02 Python
matplotlib subplots 设置总图的标题方法
May 25 Python
详谈Python 窗体(tkinter)表格数据(Treeview)
Oct 11 Python
浅谈python的输入输出,注释,基本数据类型
Apr 02 Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
Aug 12 Python
Python爬虫之urllib基础用法教程
Oct 12 Python
Python 3 使用Pillow生成漂亮的分形树图片
Dec 24 Python
python实现查找所有程序的安装信息
Feb 18 Python
Python实现七个基本算法的实例代码
Oct 08 Python
详解Golang如何实现支持随机删除元素的堆
Sep 23 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 图片上传类代码
2009/07/17 PHP
PHP实现生成透明背景的PNG缩略图函数分享
2014/07/08 PHP
php中unserialize返回false的解决方法
2014/09/22 PHP
PHP中把对象数组转换成普通数组的方法
2015/07/10 PHP
php文件系统处理方法小结
2016/05/23 PHP
基于PHP制作验证码
2016/10/12 PHP
PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
2016/11/25 PHP
PHP基于自定义函数生成笛卡尔积的方法示例
2017/09/30 PHP
PHP实现无限极分类的两种方式示例【递归和引用方式】
2019/03/25 PHP
php+js实现的无刷新下载文件功能示例
2019/08/23 PHP
一个cssQuery对象 javascript脚本实现代码
2009/07/21 Javascript
javascript 操作Word和Excel的实现代码
2009/10/26 Javascript
JavaScript 对象的属性和方法4种不同的类型
2010/03/19 Javascript
mysql输出数据赋给js变量报unterminated string literal错误原因
2010/05/22 Javascript
js输出阴历、阳历、年份、月份、周示例代码
2014/01/29 Javascript
Node.js 服务器端应用开发框架 -- Hapi.js
2014/07/29 Javascript
jQuery获取iframe的document对象的方法
2014/10/10 Javascript
express的中间件cookieParser详解
2014/12/04 Javascript
javascript中的正则表达式使用详解
2015/08/30 Javascript
Bootstrap每天必学之下拉菜单
2015/11/25 Javascript
Nodejs中的this详解
2016/03/26 NodeJs
JavaScript实现设计模式中的单例模式的一些技巧总结
2016/05/17 Javascript
Bootstrap Fileinput 4.4.7文件上传实例详解
2018/07/25 Javascript
vue项目中使用bpmn为节点添加颜色的方法
2020/04/30 Javascript
[04:40]2016国际邀请赛中国区预选赛全程TOP10镜头集锦
2016/07/01 DOTA
[48:26]VGJ.S vs infamous Supermajor 败者组 BO3 第二场 6.4
2018/06/05 DOTA
python实现微信远程控制电脑
2018/02/22 Python
Django 导出项目依赖库到 requirements.txt过程解析
2019/08/23 Python
python计算n的阶乘的方法代码
2019/10/25 Python
python构造IP报文实例
2020/05/05 Python
CSS3 中的@keyframes介绍
2014/09/02 HTML / CSS
工商治理实习生的自我评价
2014/01/15 职场文书
初中毕业典礼演讲稿
2014/09/09 职场文书
四风自我剖析材料
2014/09/30 职场文书
一年级数学下册复习计划
2015/01/17 职场文书
Nginx实现会话保持的两种方式
2022/03/18 Servers