解析路径 (ModelBuilder)

摘要

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

了解“解析路径”在 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
格式名称、扩展名和工作空间
(可选)

移除所有保留字符。给定 C:\1Tool Data\InputFC.shp 的输入值:

  • 路径 - 输出将为文件路径,例如 C:\1Tool Data
  • 名称 - 输出将为文件名,例如 InputFC
  • 扩展名 - 输出将为文件扩展名,例如 shp
  • 工作空间名称 - 输出将为工作空间名称,例如 _1Tool_Data

Boolean

派生输出

标注说明数据类型
路径

输入的工作空间。

工作空间
名称

文件名(不包括扩展名)。

字符串
扩展名

文件扩展名。

字符串
工作空间名称

工作空间的名称。

字符串

环境

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

许可信息

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