本文实例讲述了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编程快速上手——正则表达式查找功能案例分析相关推荐

  1. python编程思维代码_Python编程快速上手——强口令检测算法案例分析

    本文实例讲述了Python强口令检测算法.分享给大家供大家参考,具体如下: 强口令检测 题目如下: 写一个函数,它使用正则表达式,确保传入的口令字符串是强口令.强口令定义:长度不少于8个字符,同时包含 ...

  2. python实操100例乘法表_Python编程快速上手——Excel表格创建乘法表案例分析

    本文实例讲述了Python Excel表格创建乘法表.分享给大家供大家参考,具体如下: 题目如下: 创建程序multiplicationTable.py,从命令行接受数字N,在一个Excel电子表格中 ...

  3. python编程快速上手第三章_Python编程快速上手 往让繁琐工作自动化-6.6 习题(示例代码)...

    Python编程快速上手 往让繁琐工作自动化-6.6 习题 1.什么是转义字符? 答:转义字符表示字符串中的一些字符,这些字符用别的方式很难在代码中打印出来. 2.转义字符\n和\t代表什么? 答:\ ...

  4. python编程快速上手-----让繁琐工作自动化_Python编程快速上手—让繁琐工作自动化|百度云盘|基础学习...

    下载地址: 链接:https://pan.baidu.com/s/1QRH_LyFAizkbLfJm3oyK1w 提取码:5fel 内容提要 如今,人们面临的大多数任务都可以通过编写计算机软件来完成. ...

  5. python新建文件夹口令_python编程快速上手—口令保管箱

    之前小编为大家整理了如何成为一个优秀的程序员应该具备的品质,接下来为大家展示一个简单有趣的python小项目,从中体会编程的乐趣.小编了解这个小项目之后,很是惊奇,觉得python竟然还可以做这样的事 ...

  6. python快速编程入门课本第六章_python编程快速上手第六章实践项目参考code

    代码如下: 题目的意思是通过一个函数将列表的列表显示在组织良好的表格中,每列右对齐 tableData = [['apples', 'oranges', 'cherries', 'banana'], ...

  7. python题目的软件_python练习题:随机出题程序

    题目1:设计一个程序,帮助小学生练习10以内的加法 题目要求: 详情: - 随机生成加法题目; - 学生查看题目并输入答案; - 判别学生答题是否正确? - 退出时, 统计学生答题总数,正确数量及正确 ...

  8. python正则表达式匹配模式屠夫之桥_Python 编程快速上手 第 7章 模式匹配与正则表达式...

    1 >>> consonantRegex = re.compile(r'[^aeiouAEIOU]')2 >>> consonantRegex.findall('R ...

  9. python编程快速上手-----让繁琐工作自动化_Python编程快速上手让繁琐工作自动化--逗号代码和字符图网格...

    逗号代码 假定有下面这样的列表: spam = ['apples', 'bananas', 'tofu', 'cats'] 编写一个函数,它以一个列表值作为参数,返回一个字符串. 该字符串包含所有表项 ...

最新文章

  1. 原创 | 大数据时代,应让“抗疫”更科学
  2. string数组批量转换成Int数组
  3. Android变形(Transform)之Camera使用介绍【转】
  4. C++中的inline用法
  5. 口罩热销卖断货,有的商家却坐地涨价,中国青年报:电商不该借机发疫情财...
  6. PureComponent: setState未触发render渲染
  7. 【车牌识别】+【模板匹配】基于智能交通的车牌识别系统
  8. Webform(简单控件、复合控件)
  9. 5、Spring Cloud-声明式调用 Feign(下)
  10. Bailian4004 数字组合【递归+DP】
  11. java 给多人发送、抄送
  12. 计算机博弈程序python_程序员大神们的经典编程语录
  13. C++ 智能指针和工厂模式
  14. 改变世界的十大计算机病毒(图)
  15. 烤仔观察丨和你息息相关!DCEP 能否领跑?各国数字货币都在搞什么?
  16. Mac小技巧:五秒学会Mac电脑旋转屏幕
  17. 厦门大学计算机科学夏令营过程,厦门大学信息学院计算机系夏令营学生见面会如期召开-厦门大学计算机科学系...
  18. 美团综合业务推荐系统的质量模型与实践
  19. Java IO Steam
  20. CGB2106-Day10

热门文章

  1. java实现保存一张图片_Java图片剪裁并保存的代码实现
  2. 量子计算机西南交大,交大量子光电实验室
  3. python4发布,Python 2.7.4、3.2.4、3.3.1版本发布
  4. python反编译加密文件_python打包的二进制文件反编译
  5. wampserver 调试 php,phpstrom+wampserver+xdebug配置
  6. hpux11.31环境,vgmodify: This operation can only be completed if PE number zero的解决办法
  7. php开发错题集,基于PHP技术数学错题集错系统的设计实现
  8. mysql longtext db2_从 MySQL 或 PostgreSQL 迁移到 DB2 Express-C
  9. java 泛型方法 泛型类
  10. 基于JAVA+SpringBoot+Mybatis+MYSQL的垃圾分类管理系统