解析路径 (ModelBuilder)

摘要

可将输入解析为其文件名、扩展名、路径和最后一个工作空间名称。 输出可用作其他工具的输出名称中的行内变量

了解“解析路径”在 ModelBuilder 中的工作原理

使用情况

  • 该工具仅在 模型构建器 中提供,以供在模型中使用。 地理处理窗格或 Python 中不提供该工具。

  • 可以添加多个变量名,从而为输出创建唯一名称,例如 C:\Temp\Out_%Name%_%Workspace Name%

  • 例如,如果此工具的输入为 C:\1Tool Data\City Roads.shp,则会将其解析为以下输出:

    解析结果
    路径C:\1Tool Data
    名称City Roads
    扩展名shp
    工作空间名称1Tool Data

    如果选中格式化名称、扩展名和工作空间参数,则会将上述路径解析为以下输出:

    解析结果
    路径C:\1Tool Data
    名称City_Roads
    扩展名shp
    工作空间名称_1Tool_Data

  • 在脚本编程中,可以使用 Python os 模块实现相同的功能。 例如,如果传递以下输入变量:

    inData = r"C:\1Tool Data\City Roads.shp"

    • 要获取名称 City Roads
      import os
      name = os.path.basename(inData)
    • 要获取路径 C:\1Tool Data
      import os
      path = os.path.dirname(inData)
    • 要获取文件扩展名 shp
      import os
      ext = os.path.splitext(inData)[1][1:]
    • 要获取工作空间名称 1Tool Data
      import os
      folder = os.path.basename(os.path.dirname(inData))

    要以与选中格式化名称、扩展名和工作空间参数时类似的方式解析路径,请执行以下操作:

    • 要获取名称 City_Roads
      import os
      import re
      name = os.path.basename(inData)
      name = re.sub('[^0-9a-zA-Z]+', '_', name)
      if name[0].isdigit():
          name = "_" + name
    • 要获取路径 C:\1Tool Data
      import os
      path = os.path.dirname(inData)
    • 要获取文件扩展名 shp
      import os
      ext = os.path.splitext(inData)[1][1:]
    • 要获取工作空间名称 _1Tool_Data
      import os
      import re
      folder = os.path.basename(os.path.dirname(inData))
      folder = re.sub('[^0-9a-zA-Z]+', '_', folder)
      if folder[0].isdigit():
          folder = "_" + folder

  • 此工具的路径输出具有工作空间数据类型,可直接作为输入连接到创建要素类工具的要素类位置参数,该参数接受工作空间数据类型作为输入。 对于没有工作空间数据类型参数的工具(例如复制),可以使用行内变量替换(例如 %Path%\Out_%Name%.%Extension%)将路径值传递给工具。

    使用“创建要素类”工具解析路径

参数

标注说明数据类型
输入值

将解析的输入值。

Any Value
格式化名称、扩展名和工作空间
(可选)

指定是否将移除所有保留字符。

  • 选中 - 将移除保留字符。
  • 未选中 - 将不会移除保留字符。 这是默认设置。
Boolean

派生输出

标注说明数据类型
路径

输入的工作空间。

Workspace
名称

文件名,不包括扩展名。

String
扩展名

文件扩展名。

String
工作空间名称

工作空间的名称。

String

环境

此工具不使用任何地理处理环境。

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题