Files
YunNanProject/Tools/Full_Original.py

103 lines
3.0 KiB
Python
Raw Permalink Normal View History

2025-09-10 14:26:55 +08:00
import os
import sys
import importlib
import traceback
from datetime import datetime
def run_tool(tool_name):
"""运行指定的工具脚本"""
print(f"\n{'='*50}")
print(f"开始执行 {tool_name}")
print(f"{'='*50}")
start_time = datetime.now()
print(f"开始时间: {start_time.strftime('%Y-%m-%d %H:%M:%S')}")
try:
# 导入工具模块
module = importlib.import_module(tool_name)
# 执行main函数
if hasattr(module, 'main'):
module.main()
print(f"\n{tool_name} 执行成功")
else:
print(f"\n{tool_name} 没有找到main函数")
return False
except Exception as e:
print(f"\n{tool_name} 执行失败: {str(e)}")
traceback.print_exc()
return False
end_time = datetime.now()
duration = end_time - start_time
print(f"结束时间: {end_time.strftime('%Y-%m-%d %H:%M:%S')}")
print(f"耗时: {duration.total_seconds():.2f}")
return True
def main():
"""主函数:依次执行所有工具"""
print("开始执行全部数据处理工具 (T1-T8)")
print(f"当前工作目录: {os.getcwd()}")
# 确保在Tools目录下执行
tools_dir = os.path.dirname(os.path.abspath(__file__))
os.chdir(tools_dir)
print(f"切换到工具目录: {tools_dir}")
# 将Tools目录添加到Python路径
if tools_dir not in sys.path:
sys.path.insert(0, tools_dir)
# 将项目根目录添加到Python路径
project_root = os.path.dirname(tools_dir)
if project_root not in sys.path:
sys.path.insert(0, project_root)
# 定义要执行的工具列表
tools = [
"T1_RenKou",
"T2_MaoRuXueLv",
"T3_SchoolCount",
"T4_ClassCount",
"T5_ZhaoShengCount",
"T6_ZaiXiaoShengCount",
"T7_TeacherCount",
"T8_SchoolMianJi"
]
# 记录执行结果
results = {}
# 依次执行每个工具
for tool in tools:
success = run_tool(tool)
results[tool] = success
# 如果某个工具执行失败,可以选择是否继续执行后续工具
if not success:
print(f"\n⚠️ {tool} 执行失败,但继续执行后续工具...")
# 打印执行结果摘要
print("\n" + "="*50)
print("执行结果摘要")
print("="*50)
success_count = sum(1 for result in results.values() if result)
total_count = len(results)
for tool, success in results.items():
status = "✅ 成功" if success else "❌ 失败"
print(f"{tool}: {status}")
print(f"\n总计: {success_count}/{total_count} 个工具执行成功")
if success_count == total_count:
print("🎉 所有工具执行完成!")
else:
print("⚠️ 部分工具执行失败,请检查错误信息")
if __name__ == "__main__":
main()