import os, re
deffileRex(inputStr,txtLines):
txtRex = re.compile(r'{0}'.format(inputStr))#正则表达式对象
blockList =[]
i =0for 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 =0if fileName.endswith('.txt'):#enswith方法,判断字符串结尾,检查文件名后缀是不是.txt文本文件
nameList.append(fileName)#添加到文件名列表
p +=1else:continueprint("找到的文本文件个数: {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))#输出查找结果