python - 上下文管理器范围
问题描述
我了解上下文管理器不会在 Python 中创建范围。但是,为什么这段代码:
with tempfile.NamedTemporaryFile(mode='wt', dir=F"{os.path.dirname(os.path.dirname(os.path.realpath(__file__)))}/assets/fetch/", delete=False, suffix=".xml") as fp:
fp.write(generate_xml(param))
from time import sleep
sleep(.05)
MODEL_PATH = fp.name
model = mujoco_py.load_model_from_path(MODEL_PATH)
给出“找不到文件”的错误,但将模型移到上下文管理器之外不会。
with tempfile.NamedTemporaryFile(mode='wt', dir=F"{os.path.dirname(os.path.dirname(os.path.realpath(__file__)))}/assets/fetch/", delete=False, suffix=".xml") as fp:
fp.write(generate_xml(param))
from time import sleep
sleep(.05)
MODEL_PATH = fp.name
model = mujoco_py.load_model_from_path(MODEL_PATH)
MODEL_PATH 未在函数的其他任何地方定义。
解决方案
推荐阅读
- c - 使用带有提示地址的 mmap 是全局变量的地址和 MAP_FIXED
- azure - IoT 中心设备孪生查询在 lastActivityTime 属性上返回不正确的结果
- python - 在 s3 上处理丢失文件的有效方法
- visual-studio - devenv /upgrade 通过本地 powershell 命令工作,但在 gitlab 作业中失败
- php - Laravel 7:使用 API 端点 + 单页应用程序验证电子邮件
- sql - 获取具有两个日期列的所有行,其中日期在指定间隔内或之间
- flutter - Flutter/Dart- 在 null 上调用了方法“replaceAll”。如何检查字符串是否存在?
- javascript - 我怎样才能延迟表单操作?
- swift - 观察者和图像获取无法按预期工作
- html - 我可以在 html 中做正则表达式来匹配 css 和 js 吗?