如何无需拼接路径即可从AzureML文件共享访问本地文件?
Azure ML Notebook相对路径访问失效解决方案
针对Azure ML UI Notebook默认工作目录变更、无法直接用相对路径访问同目录文件的问题,可通过以下两种无硬编码路径的方案解决:
方案1:使用系统内置环境变量动态切换工作目录
直接在Notebook开头执行以下代码,无需手动填写用户名、集群名等固定字段,环境变更也不需要修改代码:
# 方法A:魔法命令写法,适合Notebook场景 %cd ~/code/Users/$USER/temp # 方法B:纯Python写法,兼容脚本运行场景 import os os.chdir(f"{os.environ['HOME']}/code/Users/{os.environ['USER']}/temp")
执行后再次运行os.getcwd()即可得到和JupyterLab环境一致的工作目录,直接用相对路径读取同目录下的文件即可:
import pandas as pd df = pd.read_csv('WHO-COVID-19-global-data.csv')
如果需要兼容本地运行场景,可以增加异常判断:
import os try: # Azure ML环境自动切换路径 os.chdir(f"{os.environ['HOME']}/code/Users/{os.environ['USER']}/temp") except KeyError: # 本地环境直接使用当前工作目录 pass
方案2:修改计算实例默认启动根目录(一次配置永久生效)
如果需要所有Notebook默认都在对应工作目录启动,可以直接修改计算实例的根目录配置:
- 打开Azure ML工作室「计算」页面,找到当前使用的计算实例
- 点击「编辑」按钮,下滑找到「高级设置」板块
- 在「根目录」选项中,选择你常用的工作目录即可
- 保存配置后重启计算实例,后续打开的所有Notebook默认工作目录都会自动指向该路径,不需要再执行任何路径切换代码
内容的提问来源于stack exchange,提问作者Anirban Saha
相关产品推荐
相关产品推荐

