Blender运行读取txt坐标的立方体脚本时提示无文件或目录错误
报错核心原因
Blender内置Python环境的运行逻辑和VS Code存在本质差异,也是触发报错的根本原因:
- VS Code默认把你当前打开的项目根文件夹作为脚本运行的工作目录,写相对路径
open("list.txt")会直接到项目根目录找文件,所以运行完全正常 - Blender运行内置脚本时,默认的工作目录是Blender可执行程序的安装路径,根本不是你存放
list.txt的自定义文件夹位置,直接用相对路径当然会抛「文件不存在」的错误。
可落地的解决方法
方法1:直接使用文件绝对路径
写全list.txt的完整磁盘路径,绕开工作目录的影响:
- Windows环境(路径前加
r避免反斜杠转义问题):with open(r"D:\我的Blender工程\list.txt", "r") as filestream: - macOS / Linux环境:
with open("/Users/xxx/我的Blender工程/list.txt", "r") as filestream:
方法2:跟随Blend工程目录动态匹配路径(推荐)
把list.txt和你正在编辑的.blend工程文件放在同一个文件夹下,通过Blender自带的bpy模块自动获取工程文件的所在路径拼接目标文件位置,换电脑、挪文件夹都不会失效:
import bpy import os # 获取当前已保存的.blend工程文件的所在目录 blend_project_dir = os.path.dirname(bpy.data.filepath) # 自动拼接list.txt的完整绝对路径 target_file = os.path.join(blend_project_dir, "list.txt") with open(target_file, "r") as filestream: for line in filestream: # 加strip()去除行首尾空白、换行符,避免转整型时出错 currentline = line.strip().split(",") total = str( int(currentline[0]) + int(currentline[1]) + int(currentline[2])) + "\n" print(currentline)
注意:如果你的.blend工程还没保存过(处于未命名的新建状态),
bpy.data.filepath会返回空值,拼接路径会触发报错,运行脚本前请先把工程文件保存到对应文件夹。
方法3:临时排查工作目录位置
如果不确定Blender当前的工作目录到底指向哪里,可以先运行下面的代码打印路径,就能直观看到路径错配的问题:
import os print("Blender脚本运行的默认工作目录:", os.getcwd())
内容的提问来源于stack exchange,提问作者Mustafa Rasheed
相关产品推荐
相关产品推荐

