Blender脚本导出选中物体名后缀到记事本输出None问题求助
Blender Python脚本写入文件值为None问题修复
根因
- Python内置
print()函数仅负责将参数打印到控制台,本身没有返回值,默认返回None。你将print(i.name.split(".")[1])的执行结果赋值给result变量,实际存入的就是None,最终写入文件的内容自然全是None。
修复后的代码
直接提取拆分后的名称后缀赋值即可,推荐使用with上下文管理器管理文件IO,无需手动调用close(),避免异常场景下的文件资源泄露:
import bpy with open("C:/Users/xxx/Desktop/CODING.txt", 'w') as f: for obj in bpy.context.selected_objects: # 直接取名称按.拆分后的第二部分 suffix = obj.name.split(".")[1] # 写入时加换行符,每个后缀单独占一行,可读性更好 f.write(suffix + "\n")
可选优化
如果存在选中物体名称不含.的场景,可以加判断逻辑避免索引越界报错:
import bpy with open("C:/Users/xxx/Desktop/CODING.txt", 'w') as f: for obj in bpy.context.selected_objects: name_parts = obj.name.split(".") if len(name_parts) >= 2: f.write(name_parts[1] + "\n")
内容的提问来源于stack exchange,提问作者김현우
相关产品推荐
相关产品推荐

