我正在写一个cli-tool,需要一些路径作为输入。
我正在用python编写这个工具,不想使用低于3.6的python解释器。在处理pathlib中的路径时,使用包python似乎是一种现代的方式。所以如果可能的话,我想把os和os.path抛在脑后。
似乎pathlib将路径~/test/解释为当前工作目录的相对路径,下面的代码显示了它
import pathlib
test_path = pathlib.Path('~/test')
absolute_path = test_path.absolute()
print(f"{str(test_path):>31}\n{str(absolute_path):>31}")
# output:
# ~/test
# /home/myUser/~/test如何使用pathlib将以~开头的每个路径识别为绝对路径,并自动将~展开到用户主目录中?
发布于 2020-09-17 22:37:52
答案很简单,在Path对象上使用.expanduser()而不是.absolute(),它将用运行脚本的用户的主目录替换~,只有当~在开头时,结果才是绝对路径:
import pathlib
test_path = pathlib.Path('~/test')
absolute_path = test_path.expanduser()
# If ~ is somewhere in the middle of the path, use .resolve() to get an absolute path.
print(f"{str(test_path):>31}\n{str(absolute_path):>31}")
# output:
# ~/test
# /home/myUser/testhttps://stackoverflow.com/questions/63940438
复制相似问题