首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用pathlib处理以~开头的路径?

如何使用pathlib处理以~开头的路径?
EN

Stack Overflow用户
提问于 2020-09-17 22:37:52
回答 1查看 114关注 0票数 0

我正在写一个cli-tool,需要一些路径作为输入。

我正在用python编写这个工具,不想使用低于3.6的python解释器。在处理pathlib中的路径时,使用包python似乎是一种现代的方式。所以如果可能的话,我想把osos.path抛在脑后。

似乎pathlib将路径~/test/解释为当前工作目录的相对路径,下面的代码显示了它

代码语言:javascript
复制
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将以~开头的每个路径识别为绝对路径,并自动将~展开到用户主目录中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-17 22:37:52

答案很简单,在Path对象上使用.expanduser()而不是.absolute(),它将用运行脚本的用户的主目录替换~,只有当~在开头时,结果才是绝对路径:

代码语言:javascript
复制
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/test
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63940438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档