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实现决策树
Dec 21 Python
python操作xlsx文件的包openpyxl实例
May 03 Python
利用Python yagmail三行代码实现发送邮件
May 11 Python
pygame游戏之旅 载入小车图片、更新窗口
Nov 20 Python
详解python读取和输出到txt
Mar 29 Python
python flask框架实现重定向功能示例
Jul 02 Python
Python列表原理与用法详解【创建、元素增加、删除、访问、计数、切片、遍历等】
Oct 30 Python
Django2 连接MySQL及model测试实例分析
Dec 10 Python
python 爬虫 实现增量去重和定时爬取实例
Feb 28 Python
Pytorch 解决自定义子Module .cuda() tensor失败的问题
Jun 23 Python
python中time、datetime模块的使用
Dec 14 Python
flask框架中的cookie和session使用
Jan 31 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
使用cookie实现统计访问者登陆次数
2013/06/08 PHP
推荐一款MAC OS X 下php集成开发环境mamp
2014/11/08 PHP
PHP基于curl实现模拟微信浏览器打开微信链接的方法示例
2019/02/15 PHP
关于IFRAME 自适应高度的研究
2006/07/20 Javascript
原生js写的放大镜效果
2012/08/22 Javascript
js中页面的重新加载(当前页面/上级页面)及frame或iframe元素引用介绍
2013/01/24 Javascript
JS实现标签页效果(配合css)
2013/04/03 Javascript
jQuery数据缓存用法分析
2015/02/20 Javascript
jQuery实现复选框成对选择及对应取消的方法
2015/03/03 Javascript
Javascript如何判断数据类型和数组类型
2016/06/22 Javascript
express文件上传中间件Multer详解
2016/10/24 Javascript
深入理解jquery中的each用法
2016/12/14 Javascript
一篇文章带你浅入webpack的DLL优化打包
2020/02/20 Javascript
Python的另外几种语言实现
2015/01/29 Python
Python打印scrapy蜘蛛抓取树结构的方法
2015/04/08 Python
python简单商城购物车实例代码
2018/03/15 Python
对pandas中to_dict的用法详解
2018/06/05 Python
python打包生成的exe文件运行时提示缺少模块的解决方法
2018/10/31 Python
python+opencv实现阈值分割
2018/12/26 Python
python批量解压zip文件的方法
2019/08/20 Python
Python 随机生成测试数据的模块:faker基本使用方法详解
2020/04/09 Python
学python最电脑配置有要求么
2020/07/05 Python
html5/css3响应式页面开发总结
2018/10/16 HTML / CSS
阿根廷票务网站:StubHub阿根廷
2018/04/13 全球购物
澳大利亚珍珠首饰购物网站:Vayo Pearls
2019/03/11 全球购物
网站域名和主机:Domain.com
2019/04/01 全球购物
金智子午JAVA面试题
2015/09/04 面试题
小小的船教学反思
2014/02/21 职场文书
宣传保护环境的公益广告词
2014/03/13 职场文书
三年级评语大全
2014/04/23 职场文书
百日安全生产活动总结
2014/07/05 职场文书
2014年自愿离婚协议书范本
2014/09/25 职场文书
2015年售后服务工作总结
2015/04/25 职场文书
公司表扬信格式
2015/05/04 职场文书
2016元旦主持人开场白
2015/12/03 职场文书
Redis Cluster 集群搭建你会吗
2021/08/04 Redis