如何测试文件是否包含完整路径或仅文件名,Python?

问题描述 投票:0回答:3

我有一个从 GUI 运行的脚本。 GUI 在 ArcGIS 中运行,基本上,第一个参数可以接受已嵌入 ArcMap 中的文件,或者我可以使用资源管理器对话框导航到文件位置。

如果我使用选项来选择嵌入文件,那么它只返回文件名:

即“土壤线”

如果我使用导航选项,那么它会返回文件名及其填充路径:

C:\SOIL\SOIL_LINES.shp

我想测试输入参数,看看该文件是否只是文件名,或者是否还包含完整路径。我最终需要解析选项 2 中的路径来隔离文件名本身。这部分我已经弄清楚了。

我已经使用了

os.path.isfile
,但这在两种情况下都会返回文件,因为它们都被视为文件。

谢谢, 迈克

python
3个回答
5
投票

除了另一个答案中提到的

isabs()
来测试它是否是完整路径之外,您还可以使用
os.path.basename()
os.path.dirname()
来查找文件名或目录路径。无需自己解析它们。

那个图书馆里有很多很酷的东西。我建议阅读完整的文档——它并不长。 http://docs.python.org/2/library/os.path.html


4
投票

您可能可以使用

os.path.isabs
为此...


0
投票

pathlib
的替代方案是:

$ filename = "my/path/file.py"
$ Path(filename).name == filename
False
$ filename = "file.py"
$ Path(filename).name == filename 
True
© www.soinside.com 2019 - 2024. All rights reserved.