UNIX绝对路径以'/'开头,而Windows以字母'C:'或'\'开头.python是否有标准函数来检查路径是绝对路径还是相对路径?
Don*_*ner 189
os.path.isabs
True
如果路径是绝对路径则返回,否则返回False
.文档说它适用于Windows(我可以确认它在Linux中可以正常工作).
os.path.isabs(my_path)
Run Code Online (Sandbox Code Playgroud)
Way*_*ner 41
如果你真正想要的是绝对路径,不要费心检查它是否是,只需得到abspath
:
import os
print os.path.abspath('.')
Run Code Online (Sandbox Code Playgroud)
Pra*_*een 15
从python 3.4
pathlib是可用的。
In [1]: from pathlib import Path
In [2]: Path('..').is_absolute()
Out[2]: False
In [3]: Path('C:/').is_absolute()
Out[3]: True
In [4]: Path('..').resolve()
Out[4]: WindowsPath('C:/the/complete/path')
In [5]: Path('C:/').resolve()
Out[5]: WindowsPath('C:/')
Run Code Online (Sandbox Code Playgroud)
import os.path
os.path.isabs('/home/user')
True
os.path.isabs('user')
False
Run Code Online (Sandbox Code Playgroud)
实际上,我认为以上答案均未解决真正的问题:跨平台路径。os.path的作用是加载依赖于OS的“路径”库版本。因此解决方案是显式加载相关的(OS)路径库:
import ntpath
import posixpath
ntpath.isabs("Z:/a/b/c../../H/I/J.txt")
True
posixpath.isabs("Z:/a/b/c../../H/I/J.txt")
False
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
50766 次 |
最近记录: |