背景:提交发布包里面我想查看哪些sql改了某个表字段的值,就自己写了个查询方法,以后也用得上
1.递归查询出文件夹中所有文件路径
2.循环文件路径,符合文件类型的读取文件内容,查看是否包含要搜搜的字符串
主要操作类
os.path.isfile(path):判断路径是否是文件
os.listdir(path):列出文件夹下的所有子文件名(只会列出下一层)
open(p, “r”, encoding=‘gbk’, errors=‘ignore’):打开文件,注意这里的打开文件编码方式 忽略错误不能读取的特殊字符
file.read() :读取文件内容
import os
text = input("input text : ")
path = input("path : ")
path_arr = []
def getFile(path):
global path_arr
if os.path.isfile(path):
path_arr.append(path)
else:
list = os.listdir(path);
if len(list) == 0 :
return ;
else:
for f in list:
f_name = os.path.join(path, f)
if os.path.isfile(f_name):
path_arr.append(f_name)
else:
getFile(f_name)
getFile(path)
for p in path_arr:
if (os.path.splitext(p)[1] in ['.txt','.proc','.sql'] ): # 指定读取文件格式
fp = open(p, "r", encoding='gbk', errors='ignore') # 注意这里的打开文件编码方式 忽略错误不能读取的特殊字符
strr = fp.read()
if strr.find(text) != -1:
print(p)