
image.png
config_data.py
md5_path = "./md5.txt"
knowledge_base.py
'''
知识库
'''
import os
import config_data as config
import hashlib
def check_md5(md5_str: str):
'''
检查传入的md5字符串是否已经被处理过了
return False(md5未处理过)
return True(已经处理过,已有记录)
'''
if not os.path.exists(config.md5_path):
# if进入表示文件不存在,那肯定没有处理过这个md5了
open(config.md5_path, "w", encoding="utf-8").close() # 创建文件
return False
else:
lines = open(config.md5_path, "r", encoding="utf-8").readlines() # 读取文件内容
for line in lines:
line = line.strip() # 移除行首尾的空格
if line == md5_str: # 如果行内容等于传入的md5字符串
return True
else:
return False
def save_md5(md5_str: str):
'''
保存文件内容的md5值到知识库
'''
with open(config.md5_path, "a", encoding="utf-8") as f: # 追加写入文件
f.write(md5_str + "\n") # 写入md5值,每个md5值占一行
def get_string_md5(input_str: str, encoding="utf-8"):
'''
获取知识库中的字符串内容的md5值
'''
str_byte = input_str.encode(encoding) # 字符串编码为字节
md5_str = hashlib.md5() # 创建md5对象
md5_str.update(str_byte) # 更新md5对象
md5_hex = md5_str.hexdigest() # 获取md5值的十六进制表示
return md5_hex # 返回md5值
class knowledgeBaseService(object):
pass
if __name__ == "__main__":
# test check_md5 and save_md5
r1 = get_string_md5("任贤齐")
r2 = get_string_md5("任贤齐")
r3 = get_string_md5("任贤齐1")
print(r1)
print(r2)
print(r3)
save_md5("4490987f13fe3cebaa4da6ccd732e9e7")
print(check_md5("4490987f13fe3cebaa4da6ccd732e9e7"))
4490987f13fe3cebaa4da6ccd732e9e7
4490987f13fe3cebaa4da6ccd732e9e7
50f2044ed74f0bdb171b6f6a6d058c07
True