import sys
import re
import glob
import os
import time
FILE_HOME=os.path.expanduser('~/temp')
sensitive_words="bad_keyword1|bad_keyword2|bad_keyword3" #要检查的敏感词
def check_last_modified_files():
files = glob.glob(FILE_HOME+"/**",recursive=True) #递归列出目录中的文件
modified_files = list() #构造一个空列表
current_time = time.time() #获取当前时间
for the_file in files: # 遍历文件查找 12 小时内更改的文件
time_delta = current_time - os.path.getmtime(the_file)
time_delta_hours = time_delta / (60*60)
if time_delta_hours < 12:
modified_files.append(the_file)
return modified_files
def is_sensitive():
modified_files = check_last_modified_files()
print("got "+str(len(modified_files))+" changed files")
for mfile in modified_files:
if not os.path.isfile(mfile): continue #判断是目录还是文件,如果不是文件不进行处理
print("checking "+mfile+"...")
file = open(mfile, 'r') #以读取方式打开文件
try:
lines = file.readlines() #读取文件中的所有行
line_count = 0
for line in lines:
line_count= line_count+1
if re.search(sensitive_words,line,re.IGNORECASE): #使用定义好的关键字检查内容, re.IGNORECASE表示不区分大小写
print("\n发现敏感词,行:\n"+line+"\nin 文件:"+mfile+":"+str(line_count))
return True #如果找到敏感词,中断循环
pass
except:
print('unexpected error %s' % mfile, sys.exc_info())
pass
return False
if __name__ == '__main__':
if is_sensitive():
print("\n包含敏感词")
else:
print("\n未发现敏感词")
完整源码:https://github.com/bswen/bswen-python-project/blob/main/utils/check_keywords.py