import sys from scbank_collector import SCBankCollector from scbank_processor import SCBankProcessor def main(): while True: print("\n=== 四川银行权益商城自动化工具 ===") print("1. 启动采集 (Collector) -> 浏览器抓取") print("2. 执行同步 (Processor) -> 货易通上传 (处理JSONL)") print("3. 执行同步 (Processor) -> 货易通上传 (处理Excel)") print("4. 退出") choice = input("请输入选项 [1-4]: ").strip() if choice == "1": print("\n[系统] 正在启动采集器...") collector = SCBankCollector() collector.run() elif choice == "2": print("\n[系统] 正在启动处理器 (JSONL模式)...") processor = SCBankProcessor() processor.run() elif choice == "3": print("\n[系统] 正在启动处理器 (Excel模式)...") processor = SCBankProcessor() processor.run_excel() elif choice == "4": print("\n[系统] 退出程序。") sys.exit(0) else: print("[错误] 无效选项,请重新输入。") # 暂停一下,避免刷屏太快 # input("\n按回车键继续...") if __name__ == "__main__": try: main() except KeyboardInterrupt: print("\n[系统] 用户中断,程序已退出。") sys.exit(0) except Exception as e: # 直接把错误写到当前目录的 error.log 文件 with open("error.log", "w", encoding="utf-8") as f: import traceback f.write(f"Error: {str(e)}\n") f.write(traceback.format_exc()) # 尝试打印 print(f"\n[致命错误] {e}") print("错误日志已保存至 error.log") # 死循环等待用户输入,防止窗口关闭 while True: try: input("程序发生错误,请查看 error.log。按回车键尝试退出...") except: break sys.exit(1)