例如文件的多级目录:
- A
- bin
- _ _ init _ _.py
- a.py
- conf
- _ _ init _ _.py
- settings.py
- core
- _ _ init _ _.py
- main.py
- logs
A : / bin : / a.py 文件内写程序,要获取其他文件内的内容,
- 首先要先获取到其他文件的地址
- 可以先获取自己的地址
- 然后获取上一级目录地址
- 然后读取文件
获取程序路径
# 相对路径
print(__file__) #打印当前程序的路径(相对路径)
# 绝对路径
import os
print(os.path.abspath(__file__)) #此时得到的绝对路径一直到文件名
# 绝对路径,但不要文件名
print(os.path.dirname(os.path.abspath(__file__)))
获取上一层的目录
与前面相似,只需要再来一遍即可:
print(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
# 将父路径(上一级)赋给 base_dir
base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
引用
获取到上一级目录后,就可以开始调用了
import sys # 加入环境变量
sys.path.append(base_dir)
# 在这层目录中,调用 core 目录下的 main
from core import main
main.logic() # 调用了main中的logic()函数