Python joining current directory and parent directory with os.path.join
我想将当前目录路径和相对目录路径
1 2 | import os goal_dir = os.path.join(os.getcwd(),"../../my_dir") |
现在,如果当前目录是
我怎样才能做到这一点?
您可以使用normpath,realpath或abspath:
1 2 3 4 5 6 | import os goal_dir = os.path.join(os.getcwd(),"../../my_dir") print goal_dir # prints C:/here/I/am/../../my_dir print os.path.normpath(goal_dir) # prints C:/here/my_dir print os.path.realpath(goal_dir) # prints C:/here/my_dir print os.path.abspath(goal_dir) # prints C:/here/my_dir |
考虑使用
或可以使用
一个人应该根据需求选择这些功能之一
在
1 | os.path.abspath("../../my_dir") |
如果您对相对路径感兴趣,请使用
1 2 | >>> os.path.normpath("../my_dir/../my_dir") '../my_dir' |
有关处理文件路径的其他参考:
- pathlib-面向对象的文件系统路径
- os.path-常用路径名操作
最近,我发现了pathlib。
1 2 3 | from pathlib import Path cwd = Path.cwd() goal_dir = cwd.parent.parent /"my_dir" |
或者,使用当前脚本的文件:
1 2 | cwd = Path(__file__).parent goal_dir = cwd.parent.parent /"my_dir" |
在这两种情况下,可以找到简化形式的绝对路径,如下所示:
1 | goal_dir = goal_dir.resolve() |