简化项目并切换到v2模型与场景报告

This commit is contained in:
xunyulin230420
2026-02-12 16:32:45 +08:00
parent 706940d8d3
commit a19da4728b
23 changed files with 454 additions and 1235 deletions

View File

@@ -17,6 +17,7 @@ import pandas as pd
import numpy as np
from demoparser2 import DemoParser # 核心依赖
import logging
import sys
# ==============================================================================
# ⚙️ 配置与调优参数 (可修改参数区)
@@ -321,10 +322,15 @@ def process_demo(demo_path, output_dir, delete_source=False):
except Exception as e:
logging.error(f"处理失败 {demo_name}: {str(e)}")
# 如果是 Source 1 错误,给予明确提示
if "Source1" in str(e):
logging.error("❌ 这是一个 CS:GO (Source 1) 的 Demo本系统仅支持 CS2 (Source 2) Demo。")
sys.exit(1)
def main():
parser = argparse.ArgumentParser(description="L1B 快照引擎")
parser.add_argument('--demo_dir', type=str, default='data/demos', help='输入 .dem 文件的目录')
parser.add_argument('--file', type=str, help='处理单个 .dem 文件 (如果指定此参数,将忽略 --demo_dir)')
parser.add_argument('--output_dir', type=str, default='data/processed', help='输出 .parquet 文件的目录')
parser.add_argument('--delete-source', action='store_true', help='处理成功后删除源文件')
args = parser.parse_args()
@@ -332,7 +338,22 @@ def main():
if not os.path.exists(args.output_dir):
os.makedirs(args.output_dir)
# 获取 demo 列表
# 模式 1: 单文件处理
if args.file:
if not os.path.exists(args.file):
logging.error(f"文件不存在: {args.file}")
return
if not args.file.endswith('.dem'):
logging.error(f"无效的文件扩展名: {args.file}")
return
process_demo(args.file, args.output_dir, delete_source=args.delete_source)
return
# 模式 2: 目录批处理
if not os.path.exists(args.demo_dir):
logging.warning(f"目录不存在: {args.demo_dir}")
return
demo_files = [os.path.join(args.demo_dir, f) for f in os.listdir(args.demo_dir) if f.endswith('.dem')]
if not demo_files: