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中的struct模块
Apr 28 Python
python获取外网ip地址的方法总结
Jul 02 Python
python 数据生成excel导出(xlwt,wlsxwrite)代码实例
Aug 23 Python
在Python中画图(基于Jupyter notebook的魔法函数)
Oct 28 Python
python几种常用功能实现代码实例
Dec 25 Python
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
Feb 27 Python
Django {{ MEDIA_URL }}无法显示图片的解决方式
Apr 07 Python
使用Keras中的ImageDataGenerator进行批次读图方式
Jun 17 Python
Tensorflow tensor 数学运算和逻辑运算方式
Jun 30 Python
使用Python文件读写,自定义分隔符(custom delimiter)
Jul 05 Python
python爬虫爬取网页数据并解析数据
Sep 18 Python
详解用 python-docx 创建浮动图片
Jan 24 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检测链接是否存在的代码实例分享
2016/05/06 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
javascript实现仿银行密码输入框效果的代码
2007/12/13 Javascript
JavaScript入门教程 Cookies
2009/01/31 Javascript
JQuery对checkbox操作 (循环获取)
2011/05/20 Javascript
JavaScript 学习笔记之操作符
2015/01/14 Javascript
js实现网页多级级联菜单代码
2015/08/20 Javascript
JS实现不规则TAB选项卡效果代码
2015/09/16 Javascript
小巧强大的jquery layer弹窗弹层插件
2015/12/06 Javascript
jquery获取select选中值的方法分析
2015/12/22 Javascript
EasyUI的doCellTip实现鼠标放到单元格上提示单元格内容
2016/08/24 Javascript
node.js文件上传处理示例
2016/10/27 Javascript
移动开发之自适应手机屏幕宽度
2016/11/23 Javascript
js移动焦点到最后位置的简单方法
2016/11/25 Javascript
jQuery实现遍历XML节点和属性的方法示例
2018/04/29 jQuery
JavaScript简单实现的仿微博留言功能示例
2019/01/17 Javascript
CountUp.js实现数字滚动增值效果
2019/10/17 Javascript
vue中echarts图表大小适应窗口大小且不需要刷新案例
2020/07/19 Javascript
JavaScript 实现继承的几种方式
2021/02/19 Javascript
学习python 之编写简单乘法运算题
2016/02/27 Python
Python中enumerate()函数编写更Pythonic的循环
2018/03/06 Python
python实现泊松图像融合
2018/07/26 Python
Tornado Web Server框架编写简易Python服务器
2018/07/28 Python
Python使用type关键字创建类步骤详解
2019/07/23 Python
Django实现文件上传下载
2019/10/06 Python
python实现发送QQ邮件(可加附件)
2020/12/23 Python
丹麦优惠购物网站:PLUSSHOP
2019/03/24 全球购物
小学生我的梦想演讲稿
2014/08/21 职场文书
公司周年庆活动方案
2014/08/25 职场文书
爱牙日活动总结
2014/08/29 职场文书
刑事附带民事代理词
2015/05/25 职场文书
天堂的孩子观后感
2015/06/11 职场文书
2016优秀员工先进事迹材料
2016/02/25 职场文书
关于使用Redisson订阅数问题
2022/01/18 Redis
微信小程序 WeUI扩展组件库的入门教程
2022/04/21 Javascript
利用Python实现模拟登录知乎
2022/05/25 Python