The value of knowledge lies not in possession, but in share.

0%

Python--获取当前或上级目录路径

Python脚本中常常需要目录间文件的互相调用,这里分别对获取当前目录路径获取上级目录路径常用方法进行总结。

获取当前目录路径

1
2
3
4
5
6
7
8
9
# 方式一
import os
print(os.getcwd())
# 方式二
import sys
print(sys.path[0])
# 方式三
import os
print(os.path.abspath(os.path.dirname(__file__)))

获取上级目录路径

1
2
3
4
5
6
7
8
9
10
11
12
方式一:(推荐)
import os
print(os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir)))
方式二:(推荐)
import sys, os
pwd = sys.path[0] # 获取当前执行脚本的位置
print(os.path.abspath(os.path.join(pwd, os.pardir)))
方式三、四、五:
import os
print(os.path.abspath(os.path.dirname(os.getcwd())))
print(os.path.abspath(os.path.join(os.getcwd(), "..")))
print(os.path.abspath(os.path.dirname(os.path.abspath(os.path.dirname(__file__)))) #不推荐,太丑

获取上上级目录路径

1
2
3
4
5
6
方式一:(推荐)
import os
print(os.path.abspath(os.path.join(os.getcwd(), "../..")))
方式二:(推荐)
import os
print(os.path.abspath(os.path.join(os.getcwd(), '..', '..')))

获取上上上级目录路径

1
2
3
方式一:(推荐)
import os
print(os.path.abspath(os.path.join(os.getcwd(), '..', '..', '..')))

PS 解释:

1
2
3
4
5
__file__:当前文件路径
os.path.dirname(file): 某个文件所在的目录路径
os.path.join(a, b, c,....): 路径构造 a/b/c
os.path.abspath(path): 将path从相对路径转成绝对路径
os.pardir: Linux下相当于"../"

🍭支持一根棒棒糖吧!