You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Maya Python技术问题:如何获取不含路径与扩展名的当前场景名

获取Maya当前场景的纯名称(不含路径和扩展名)

嘿,这个需求我太熟悉了!cmds.file(q=True, sn=True)确实只能返回完整的场景路径,不过我们可以借助Python的标准库或者简单的字符串处理来提取出你要的纯场景名,这里给你两种靠谱的方法:

方法一:用Python的os.path模块(推荐)

这个方法最稳妥,能兼容Windows/OSX/Linux各种路径格式,还能完美处理文件名里带小数点的特殊情况:

import os
import maya.cmds as cmds

# 获取完整场景路径
full_path = cmds.file(query=True, sceneName=True)

if full_path:
    # 先提取带扩展名的文件名,再剥离扩展名
    scene_name = os.path.splitext(os.path.basename(full_path))[0]
    print(f"当前场景纯名称:{scene_name}")
else:
    print("提示:当前场景还未保存,请先保存后再获取名称!")

步骤拆解:

  • os.path.basename(full_path):从完整路径里取出最后一段(带扩展名的文件名),比如把/Users/me/scenes/My_Project_v001.ma变成My_Project_v001.ma
  • os.path.splitext(...):把文件名和扩展名拆成元组(文件名, 扩展名),取第一个元素就得到不带后缀的纯场景名

方法二:纯字符串分割(简单但有局限性)

如果你的场景文件名里不会出现除扩展名外的小数点,也可以用这种更简洁的方式:

import maya.cmds as cmds

full_path = cmds.file(query=True, sceneName=True)

if full_path:
    # 先按斜杠分割取最后一段,再按小数点分割取第一段
    scene_name = full_path.split('/')[-1].split('.')[0]
    print(scene_name)
else:
    print("当前场景未保存!")

⚠️ 注意:如果你的场景文件名是My.Scene.v001.ma,这种方法会错误地返回My,所以优先推荐方法一。

内容的提问来源于stack exchange,提问作者Jim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:02:58