commit
This commit is contained in:
65
backend/replace_print_with_logger.py
Normal file
65
backend/replace_print_with_logger.py
Normal file
@@ -0,0 +1,65 @@
|
||||
"""
|
||||
批量替换 xhs_login.py 中的 print 为 logger
|
||||
"""
|
||||
import re
|
||||
|
||||
def replace_print_to_logger(content):
|
||||
"""将 print 语句替换为对应的 logger 语句"""
|
||||
|
||||
# 替换规则:根据内容判断日志级别
|
||||
def determine_log_level_and_replace(match):
|
||||
text = match.group(1)
|
||||
|
||||
# 错误相关
|
||||
if any(keyword in text for keyword in ['失败', '错误', '异常', '❌', 'error', 'Error', 'failed', 'Failed']):
|
||||
return f'logger.error({text})'
|
||||
|
||||
# 警告相关
|
||||
elif any(keyword in text for keyword in ['警告', '⚠️', 'warning', 'Warning', '未找到', '检测到']):
|
||||
return f'logger.warning({text})'
|
||||
|
||||
# 成功相关
|
||||
elif any(keyword in text for keyword in ['成功', '✅', 'success', 'Success', '已', '完成']):
|
||||
return f'logger.success({text})'
|
||||
|
||||
# 调试相关
|
||||
elif any(keyword in text for keyword in ['调试', 'debug', 'Debug', '查找', '正在', '开始']):
|
||||
return f'logger.debug({text})'
|
||||
|
||||
# 默认 info
|
||||
else:
|
||||
return f'logger.info({text})'
|
||||
|
||||
# 匹配 print(xxx, file=sys.stderr)
|
||||
pattern1 = r'print\((.*?),\s*file=sys\.stderr\)'
|
||||
content = re.sub(pattern1, determine_log_level_and_replace, content)
|
||||
|
||||
# 匹配普通 print(xxx)
|
||||
pattern2 = r'print\((.*?)\)(?!\s*#.*logger)'
|
||||
content = re.sub(pattern2, determine_log_level_and_replace, content)
|
||||
|
||||
return content
|
||||
|
||||
|
||||
def main():
|
||||
# 读取文件
|
||||
with open('xhs_login.py', 'r', encoding='utf-8') as f:
|
||||
content = f.read()
|
||||
|
||||
# 替换
|
||||
new_content = replace_print_to_logger(content)
|
||||
|
||||
# 备份原文件
|
||||
with open('xhs_login.py.bak', 'w', encoding='utf-8') as f:
|
||||
f.write(content)
|
||||
|
||||
# 写入新文件
|
||||
with open('xhs_login.py', 'w', encoding='utf-8') as f:
|
||||
f.write(new_content)
|
||||
|
||||
print("✅ 替换完成!")
|
||||
print("原文件已备份到 xhs_login.py.bak")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Reference in New Issue
Block a user