题目:
编写一个程序,打开文件夹中所有的.py文件,查找匹配用户提供的正则表达 式的所有行。结果应该打印到屏幕上。
代码:
#! python3
# RegexSearch.py ---- 编写一个程序,打开文件夹中所有的.py文件,查找匹配用户提供的正则表达式的所有行。结果打印到屏幕上
import os,re,sys
if len(sys.argv)!=2:
print('您的输入格式有误')
exit(1)
#定义.py文件和待匹配字符串的正则表达式
RegexTxt=re.compile(r'(.+)\.py$')
RegexLine=re.compile(sys.argv[1])
# 读取当前目录下的所有的.txt文件
path=os.getcwd()
FileList=os.listdir(path)
TxtFileList=[]
for file in FileList:
if RegexTxt.search(file) != None:
TxtFileList.append(file)
# 遍历txt文件
for txt in TxtFileList:
with open(txt,'r', encoding='UTF-8') as TxtFile:
# 读取txt文件的所有行
TxtLines=TxtFile.readlines()
#对每一行执行正则匹配
for line in TxtLines:
#匹配成功,打印该行
if RegexLine.search(line) != None:
print(line)
运行代码:
在命令行输入:python RegexSearch.py ^#(.*) 表示在当前文件夹下所有以.py结尾的文件中,找出以#开头的文本行,并打印。