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正则表达式经典入门教程
May 22 Python
python学习入门细节知识点
Mar 29 Python
Python序列循环移位的3种方法推荐
Apr 09 Python
python安装模块如何通过setup.py安装(超简单)
May 05 Python
python 构造三维全零数组的方法
Nov 12 Python
Python跳出多重循环的方法示例
Jul 03 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
Dec 11 Python
解决pycharm下pyuic工具使用的问题
Apr 08 Python
Python魔术方法专题
Jun 19 Python
使用python编写一个语音朗读闹钟功能的示例代码
Jul 14 Python
基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码
Feb 18 Python
Python 实现定积分与二重定积分的操作
May 26 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中导出数据到excel时数字变为科学计数的解决方法
2013/02/03 PHP
thinkphp实现面包屑导航(当前位置)例子分享
2014/05/10 PHP
合格的PHP程序员必备技能
2015/11/13 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
php post json参数的传递和接收处理方法
2018/05/31 PHP
使用Json比用string返回数据更友好,也更面向对象一些
2011/09/13 Javascript
jquery动画2.元素坐标动画效果(创建一个图片走廊)
2012/08/24 Javascript
JavaScript调用客户端的可执行文件(示例代码)
2013/11/28 Javascript
理解Javascript图片预加载
2016/02/23 Javascript
Javascript 正则表达式校验数字的简单实例
2016/11/02 Javascript
jQuery Mobile漏洞会有跨站脚本攻击风险
2017/02/12 Javascript
Three.js利用Detector.js插件如何实现兼容性检测详解
2017/09/26 Javascript
iview同时验证多个表单问题总结
2018/09/29 Javascript
vue-cli 3.x配置跨域代理的实现方法
2019/04/12 Javascript
微信小程序 云开发模糊查询实现解析
2019/09/02 Javascript
js和jquery判断数据类型的4种方法总结
2020/08/28 jQuery
python3图片转换二进制存入mysql
2013/12/06 Python
Python实现对字符串的加密解密方法示例
2017/04/29 Python
Python星号*与**用法分析
2018/02/02 Python
如何用python写一个简单的词法分析器
2018/12/18 Python
python时间序列按频率生成日期的方法
2019/05/14 Python
用Python获取摄像头并实时控制人脸的实现示例
2019/07/11 Python
Django 实现前端图片压缩功能的方法
2019/08/07 Python
Python如何实现动态数组
2019/11/02 Python
使用python实现下载我们想听的歌曲,速度超快
2020/07/09 Python
Python Celery异步任务队列使用方法解析
2020/08/10 Python
详解python算法常用技巧与内置库
2020/10/17 Python
一篇文章带你学习CSS3图片边框
2020/11/04 HTML / CSS
澳大利亚票务和娱乐市场领导者:Ticketmaster
2017/03/03 全球购物
药店主任岗位责任制
2014/02/10 职场文书
2014年大班元旦活动方案
2014/02/26 职场文书
党的群众路线教育实践活动方案
2014/10/31 职场文书
个人股份转让协议书范本
2015/01/28 职场文书
小学副班长竞选稿
2015/11/21 职场文书
党章党规党纪学习心得体会
2016/01/14 职场文书
Axios代理配置及封装响应拦截处理方式
2022/04/07 Vue.js