kur*_*pan 9 python path os.path pathlib
假设我有一个/home/me/folder/link
指向 的链接/home/me/target
。当我打电话时
pathlib.Path("link").resolve()
Run Code Online (Sandbox Code Playgroud)
from /home/me/folder/
,它将返回目标的解析路径,而不是链接的解析路径。我怎样才能使用后者pathlib
(似乎没有任何选项resolve()
)?
(os.path
相当于我正在寻找的东西os.path.abspath("link")
)
pathlib.Path
有一个absolute
方法可以做你想做的事。
$ mkdir folder
$ touch target
$ ln -s ~/target ~/folder/link
$ ls -l folder/
total 0
lrwxrwxrwx 1 me users 16 Feb 20 19:47 link -> /home/me/target
$ cd folder
$/folder python3.7 -c 'import os.path;print(os.path.abspath("link"))'
/home/me/folder/link
$/folder python3.7 -c 'import pathlib;p = pathlib.Path("link");print(p.absolute())'
/home/me/folder/link
Run Code Online (Sandbox Code Playgroud)
该方法没有出现在模块文档中,但其文档字符串如下:
返回此路径的绝对版本。即使路径没有指向任何内容,此函数也可以工作。没有进行标准化,即所有“.” 和“..”将保留在一起。使用resolve() 获取文件的规范路径。
值得注意的是,方法代码(3.7 分支中)中有一些注释表明它可能未在所有平台上进行完全测试。
归档时间: |
|
查看次数: |
4396 次 |
最近记录: |