使用 Python 设置数据的路径
地理处理工具和 arcpy 函数同时接受字符串和 Pathlib.Path 对象作为路径。
编程语言(如 Python)将字符串中的反斜线 (\) 视为转义字符。 例如,\n 表示换行符,\t 表示制表符。 指定路径时,可以使用正斜线 (/) 代替反斜线。 可以使用两个反斜线而不是一个来避免语法错误。 也可通过在包含反斜线的字符串前放置字母 r 来使用字符串文本,以使其正确解释。
import arcpy
arcpy.management.GetCount("c:/temp/streams.shp")
arcpy.management.GetCount("c:\\temp\\streams.shp")
arcpy.management.GetCount(r"c:\temp\streams.shp")
在以下示例中,反斜线使用错误,且 \t 被 Python 解释为制表符。 由于解释的路径与所期望的路径不同,该工具将失败。
import arcpy
arcpy.management.GetCount("c:\temp\streams.shp")
# ExecuteError: Failed to execute. Parameters are not valid.
# ERROR 000732: Input Rows: Dataset c: em\streams.shp does not exist or is not supported
# Failed to execute (GetCount)
提示:
同一地理数据库中的要素类和要素数据集可以具有相同的名称。 在这种情况下,要素类和要素数据集将具有相同的目录路径。 大多数工具都可以使用其中一种。 但是,对于要素类和要素数据集都能处理的工具(如复制工具),可能要指定数据类型以避免混淆。
Pathlib.Path
使用 Pathlib.Path 路径可以帮助脚本获得更好的跨平台兼容性,并提供相较于字符串处理面向对象路径的优势。
import arcpy
import pathlib
shp_file = pathlib.Path(r"c:\temp\streams.shp")
arcpy.management.GetCount(shp_file)