gpt4 book ai didi

Python 路径库 : Resolve full path to symbolic link without following it

转载 作者:行者123 更新时间:2023-11-28 18:03:50 25 4
gpt4 key购买 nike

假设我有一个指向 /home/me/target 的链接/home/me/folder/link。当我打电话时

pathlib.Path("link").resolve()

/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

该方法没有出现在模块文档中,但它的 docstring阅读:

Return an absolute version of this path. This function workseven if the path doesn't point to anything.No normalization is done, i.e. all '.' and '..' will be kept along.Use resolve() to get the canonical path to a file.

值得注意的是,方法代码(在 3.7 分支中)中的注释表明它可能并未在所有平台上进行全面测试。

关于Python 路径库 : Resolve full path to symbolic link without following it,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54722491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com