我有一个从 GUI 运行的脚本。 GUI 在 ArcGIS 中运行,基本上,第一个参数可以接受已嵌入 ArcMap 中的文件,或者我可以使用资源管理器对话框导航到文件位置。
如果我使用选项来选择嵌入文件,那么它只返回文件名:
即“土壤线”
如果我使用导航选项,那么它会返回文件名及其填充路径:
C:\SOIL\SOIL_LINES.shp
我想测试输入参数,看看该文件是否只是文件名,或者是否还包含完整路径。我最终需要解析选项 2 中的路径来隔离文件名本身。这部分我已经弄清楚了。
我已经使用了
os.path.isfile
,但这在两种情况下都会返回文件,因为它们都被视为文件。
谢谢, 迈克
除了另一个答案中提到的
isabs()
来测试它是否是完整路径之外,您还可以使用 os.path.basename()
和 os.path.dirname()
来查找文件名或目录路径。无需自己解析它们。
那个图书馆里有很多很酷的东西。我建议阅读完整的文档——它并不长。 http://docs.python.org/2/library/os.path.html
os.path.isabs
为此...
pathlib
的替代方案是:
$ filename = "my/path/file.py"
$ Path(filename).name == filename
False
$ filename = "file.py"
$ Path(filename).name == filename
True