| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- """
- 统一测试脚本:根据参数选择运行单个帖子或批量处理
- 功能:
- 1. 支持 single 模式:处理单个待解构帖子
- 2. 支持 batch 模式:批量处理作者历史帖子
- 3. 自动加载对应目录的数据
- """
- import sys
- import subprocess
- from pathlib import Path
- import argparse
- def main():
- """主函数"""
- # 解析命令行参数
- parser = argparse.ArgumentParser(
- description='运行What解构工作流测试脚本',
- formatter_class=argparse.RawDescriptionHelpFormatter,
- epilog="""
- 使用示例:
- # 单个帖子模式
- python examples/run_test.py single 阿里多多酱
- python examples/run_test.py single G88818
- # 批量处理模式
- python examples/run_test.py batch 阿里多多酱
- python examples/run_test.py batch G88818
- """
- )
- parser.add_argument(
- 'mode',
- type=str,
- choices=['single', 'batch'],
- help='运行模式:single(单个帖子)或 batch(批量处理)'
- )
- parser.add_argument(
- 'directory',
- type=str,
- help='帖子目录名(如"阿里多多酱"或"G88818")'
- )
- args = parser.parse_args()
- # 获取脚本目录
- script_dir = Path(__file__).parent
- # 根据模式选择对应的脚本
- if args.mode == 'single':
- script_path = script_dir / "run_single.py"
- mode_name = "单个帖子处理"
- else: # batch
- script_path = script_dir / "run_batch.py"
- mode_name = "批量处理"
- # 检查脚本是否存在
- if not script_path.exists():
- print(f"❌ 错误:脚本不存在 {script_path}")
- return 1
- # 检查目录是否存在
- data_dir = script_dir / args.directory
- if not data_dir.exists():
- print(f"❌ 错误:目录不存在 {data_dir}")
- print(f" 请确保以下目录存在:")
- print(f" - {data_dir}")
- return 1
- # 显示运行信息
- print("=" * 80)
- print(f"运行模式: {mode_name}")
- print(f"目录: {args.directory}")
- print(f"脚本: {script_path.name}")
- print("=" * 80)
- print()
- # 构建命令
- cmd = [sys.executable, str(script_path), args.directory]
- # 执行命令
- try:
- result = subprocess.run(cmd, check=False)
- return result.returncode
- except KeyboardInterrupt:
- print("\n\n⚠️ 用户中断执行")
- return 130
- except Exception as e:
- print(f"\n❌ 执行失败: {e}")
- return 1
- if __name__ == "__main__":
- sys.exit(main())
|