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

Maya导入OBJ文件报错:TypeError: NoneType对象无len()方法

解决Maya导入OBJ脚本的TypeError问题

嘿,这个错误我之前也踩过坑!咱们一步步捋清楚怎么解决:

错误原因分析

你看到的Error: line 1: TypeError: file <maya console> line 8: object of type 'NoneType' has no len(),本质是files变量变成了None——这说明cmds.getFileList()根本没找到你指定的路径,直接返回了空值,后面调用len(files)自然就报错了。

问题核心出在路径格式上:"/This PC/Desktop/Facial Rigging Blendshapes/"是Windows的虚拟路径(就是资源管理器里的“此电脑”那种),Maya的getFileList()识别不了这种路径,必须用实际的本地磁盘路径。

修改后的脚本

我给你调整了脚本,加了路径检查和更稳妥的写法:

import maya.cmds as cmds
import os

# 替换成你自己的实际路径!把YourUsername换成你的Windows用户名
pathOfFiles = "C:/Users/YourUsername/Desktop/Facial Rigging Blendshapes/"
fileType = "obj"

# 先确认路径存在,避免做无用功
if not os.path.exists(pathOfFiles):
    cmds.error(f"指定路径不存在,请检查:{pathOfFiles}")
    raise SystemExit

# 获取OBJ文件列表
files = cmds.getFileList(folder=pathOfFiles, filespec=f'*.{fileType}')

# 先判断files是否为空/None,再执行后续操作
if not files or len(files) == 0:
    cmds.warning("No files found")
else:
    for f in files:
        # 用os.path.join拼接路径,避免手动拼斜杠出错
        full_file_path = os.path.join(pathOfFiles, f)
        # 明确指定导入类型,忽略版本,让导入更稳定
        cmds.file(full_file_path, i=True, type="OBJ", ignoreVersion=True, mergeNamespacesOnClash=False)

关键修改点说明

  • 路径格式修正:把虚拟的This PC路径换成实际的磁盘路径,比如C:/Users/小明/Desktop/...,注意路径里的斜杠用/或者双反斜杠\\
  • 路径有效性检查:用os.path.exists()提前判断路径是否存在,避免无效调用
  • 安全路径拼接:用os.path.join()替代手动拼接路径,能自动适配不同系统的路径分隔符
  • 稳定导入参数:给cmds.file()加上type="OBJ"和ignoreVersion=True,减少导入时的兼容性问题

怎么找自己的实际路径?

打开你的桌面文件夹,点击地址栏复制路径,然后把路径里的\换成/(或者改成\\)就行啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:47:38