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

使用Python的f-string遍历ADLS目录时遇NameError问题求助

问题解决:NameError: name 'test1' is not defined

错误原因

你在定义datasets列表时,直接写了test1和test2,Python会将它们视为变量名,但你并未提前定义这两个变量,因此触发NameError。同时你的循环逻辑存在问题:input_path = f"datasets"既没有用到循环变量,也没有正确拼接ADLS的路径格式。

修正步骤

  1. 将目录名转为字符串:把test1和test2用引号包裹,作为字符串存入列表——它们是ADLS中的目录名称,不是变量。
  2. 生成正确的ADLS路径:利用f-string结合循环变量,拼接符合ADLS规范的完整路径(标准格式为abfss://<container>@<account>.dfs.core.windows.net/<directory>)。

修正后的代码

# Primary storage info
account_name = "accountnamehere"  # fill in your primary account name
container_name = "logscontainer"  # fill in your container name
subscription_id = "subscriptionname"
resource_group = "My-Resource-ML" # fill in your resource group for ADLS account
workspace_name = "My-Workspace-ML" # fill in your la workspace name

# 目录名用字符串包裹,避免被识别为未定义变量
datasets = ["test1", "test2"]
for dir_name in datasets :
    # 用f-string拼接ADLS完整路径
    input_path = f"abfss://{container_name}@{account_name}.dfs.core.windows.net/{dir_name}"
    print(input_path)

额外说明

  • 若你使用的是其他ADLS路径协议(如不同版本的存储格式),可根据实际需求调整input_path的模板。
  • 把循环变量名改为dir_name比df更直观,因为此处遍历的是目录名称,而非DataFrame对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 19:20:15