import sys import os from auto_sliceing_operate.main_begin_sliceing import main as main_begin_sliceing_main from download_batch_data.main_download_batch_data_and_trans import main as main_download_batch_data_and_trans_main from auto_sliceing_operate.main_download_zip import main as main_download_zip_main from utils.config import cfg, get_work_dir if __name__ == '__main__': # 根据参数决定执行哪个模块 # 命令映射表:命令名 -> 处理函数 command_handlers = { 'batch_download': main_download_batch_data_and_trans_main, 'begin_sliceing': main_begin_sliceing_main, 'download_slice': main_download_zip_main, } # 检查参数数量 if len(sys.argv) < 2 and sys.argv[1] != 'download_slice': print('Usage: python main.py [work_dir]') print('可用命令:', ' | '.join(command_handlers.keys())) print('\n注意: work_dir 参数可选,如果未提供将从配置文件读取默认值') sys.exit(1) command = sys.argv[1] # 检查命令是否存在 if command not in command_handlers: print(f'错误: 未知命令 "{command}"') print('可用命令:', ' | '.join(command_handlers.keys())) sys.exit(1) # 获取工作目录:优先使用命令行参数,其次使用配置文件,最后使用 None work_dir = None if len(sys.argv) > 2: work_dir = sys.argv[2] # 打印配置信息(可选,用于调试) if cfg('log.level', 'INFO') == 'DEBUG': print(f'配置信息:') print(f' - API URL: {cfg("api.base_url", "未配置")}') print(f' - Redis Host: {cfg("redis.host", "未配置")}') print(f' - 工作目录: {work_dir if work_dir else "未指定(将使用默认值)"}') # 执行对应的处理函数 command_handlers[command](work_dir=work_dir)