""" 批量替换 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()