66 lines
2.0 KiB
Python
66 lines
2.0 KiB
Python
|
|
"""
|
||
|
|
批量替换 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()
|