python - 仅使用 pathlib 规范化不存在的路径

标签 python python-3.x python-3.4

python 最近添加了 pathlib模块(我非常喜欢!)。

我只有一件事正在努力解决:是否可以规范化不存在的文件或目录的路径?我可以用 os.path.normpath 很好地做到这一点。但是必须使用库以外的东西来处理与路径相关的东西不是很荒谬吗?

我想要的功能是这样的:

from os.path import normpath
from pathlib import Path
pth = Path('/tmp/some_directory/../i_do_not_exist.txt')
pth = Path(normpath(str(pth)))
# -> /tmp/i_do_not_exist.txt

但不必求助于 os.path 也不必类型转换为 str 并返回到 Pathpth.resolve() 也不适用于不存在的文件。

有没有一种简单的方法可以只使用 pathlib

最佳答案

is it possible to normalize a path to a file or directory that does not exist?

从 3.6 开始,这是默认行为。见 https://docs.python.org/3.6/library/pathlib.html#pathlib.Path.resolve

Path.resolve(strict=False)
...
If strict is False, the path is resolved as far as possible and any remainder is appended without checking whether it exists

关于python - 仅使用 pathlib 规范化不存在的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32358767/

相关文章:

python - tensorflow - 我的输入数组中可以有元组条目吗?这样做会抛出 'Unable to get element from the feed as bytes.'

python - 如何从网站中提取信息?

Python:打印转义的unicode字符

带有内容的Python深度getsizeof列表?

python - 无法获取 __file__ Python 的实际目录

python - 在Anaconda3中使用pip安装wxPython-Phoenix

python - 如何阻止 a\from 关闭一个字符串

python - pyInstaller 可执行文件在 Ubuntu 12.04 Precise 上缺少模块 "_struct"

python - 如何在 Python 中将嵌套列表转换为字典,其中 lst[0][0] 是键

python-3.x - TypeError:getresponse()获得了意外的关键字参数“缓冲”