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