Python——研发效能工具
·
一、 数据类型与核心容器(AI 脚本里最常出现的“抽屉”)
AI 写脚本时,最喜欢用以下几种方式来存取数据(比如游戏资产路径、NPC 列表、打包配置)。
1. 字符串 (String) 与 路径处理
自动化脚本天天都要处理文件路径。
# 1. 基础字符串
project_name = "Blaster_Project"
# 2. 绝对利器:f-string(字符串格式化,拼接路径最常用)
version = "v1.0.2"
# 自动拼接成:D:/UnrealProjects/Blaster_Project/Build_v1.0.2
build_path = f"D:/UnrealProjects/{project_name}/Build_{version}"
# 3. 原始字符串 (r"..."):防止反斜杠 \ 被当成转义字符
# Windows 路径里有大量的 \,前面加个 r 就不用写双反斜杠了
win_path = r"C:\Program Files\Epic Games\UE_5.4"
2. 列表 (List)
有序的集合,相当于 C++ 的 TArray。用来存一串同类东西(比如一堆待打包的地图名)。
# 创建列表
maps_to_test = ["Map_Desert", "Map_City", "Map_Factory"]
# 添加元素
maps_to_test.append("Map_Base")
# 循环遍历(AI 写自动化冒烟测试最常用的结构)
for map_name in maps_to_test:
print(f"正在启动自动化测试:{map_name}")
3. 字典 (Dictionary)
键值对集合,相当于 C++ 的 TMap。用来存配置项(比如打包参数)。
# 创建字典
build_config = {
"engine_path": r"C:\UE_5.4",
"configuration": "Shipping", # 咱们说好的正式发布版!
"clean_old_builds": True,
"max_retry_times": 3
}
# 读取数据
print(build_config["configuration"]) # 输出: Shipping
# 修改或新增
build_config["version"] = "1.0.3"
二、 逻辑控制(指挥 AI 跑流水线的分叉口)
1. 条件判断 (if - elif - else)
status = "Crash"
if status == "Success":
print("打包成功,准备上传 Steam!")
elif status == "Crash":
print("游戏崩溃!触发 AI 堆栈日志分析机制...") # 咱们的智能化高级操作
else:
print("未知错误,请人工检查。")
2. 异常处理 (try - except)——效能岗的灵魂
自动化流水线最怕中间因为某个文件找不到就彻底死机。用 try 兜住,即使报错也能抓取日志并继续运行。
try:
# 尝试读取引擎报错日志
with open("UnrealBuildTool.log", "r") as log_file:
content = log_file.read()
except FileNotFoundError:
# 如果文件不存在,不会死机,而是执行这里的备用逻辑
print("警告:未找到日志文件,可能打包未开始。")
except Exception as e:
# 捕获其他任何未知错误
print(f"发生未知异常: {e}")
三、 文件与系统操作(自动化脚本的硬核大招)
AI 帮你写自动化工具时,高频调用的都是 Python 的内置标准库。看懂这几个,你就能指挥 AI 搬运资产、执行命令行。
1. os 和 pathlib 模块:操控文件系统
import os
from pathlib import Path
# 判断文件夹是否存在,不存在就建一个(比如建一个 Build 产物文件夹)
output_dir = Path("D:/BuildOutput")
if not output_dir.exists():
output_dir.mkdir(parents=True, exist_ok=True)
# 获取某个目录下所有的 .pak 资产文件
content_path = "D:/Blaster/Content/Paks"
if os.path.exists(content_path):
files = os.listdir(content_path)
pak_files = [f for f in files if f.endswith(".pak")]
print(f"找到的打包资源: {pak_files}")
2. subprocess 模块:调用外部程序(核心!核心!)
不管是调用虚幻引擎的编译命令行(RunUAT/UHT),还是调用 SteamCMD 上传包体,AI 绝对会用这个模块。
import subprocess
# 模拟调用 SteamCMD 的命令行指令
# 相当于在 CMD 里执行:steamcmd.exe +login MyAccount +quit
cmd = ["steamcmd.exe", "+login", "MyAccount", "+quit"]
print("正在启动 SteamCMD 流水线...")
# run 会等待命令执行完毕,并捕获返回状态
result = subprocess.run(cmd, capture_output=True, text=True)
if result.returncode == 0:
print("SteamCMD 运行成功!")
else:
print(f"运行失败,错误日志:\n{result.stderr}")
四、 如何高效指挥 AI 写 Python 脚本?(终极实战技巧)
遇到复杂的自动化需求,只需要给 AI 喂这样的 “黄金 Prompt 结构”:
💡 给 AI 发号施令的模板:
“请帮我写一个 Python 3 脚本,要求如下:
功能: 监控
D:/Test目录下的日志文件变化。逻辑: 如果发现日志中包含关键词
USTRUCT报错,利用try-except捕获异常,并提取报错行前后的 5 行上下文。核心库: 使用
pathlib模块处理路径,确保在 Windows 环境下运行不会因为\转义报错。代码规范: 关键步骤加上中文注释,方便我后续维护。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)