python跨目录import模块

下级目录中的模块导入

目录格式如下,运行的是father.py,希望在father.py中import son.py:

'''
--path_test(文件夹)
 |--father.py
 |--children(文件夹)
   |--son.py
'''
import children.son

上级目录中的模块导入

当前运行的是文件层级较深的son.py,想要导入上级的father.py,在Python版本小于3.6.7前,做法如下:

'''
--path_test(文件夹)
 |--father.py
 |--children(文件夹)
   |--son.py
'''
import sys
sys.path.append('..')
import son

一个 . 号代表从当前包导入,两个 … 代表从上一级包导入,三个 … 代表从更上一级。

但是 这个方法在Python 3.6.7以上已经失效

可用写法如下:

import os
dir_path = os.path.dirname(os.path.realpath(__file__)) # 获取当前目录
parent_dir_path = os.path.abspath(os.path.join(dir_path, os.pardir)) # 获取上级目录

import sys
sys.path.append(parent_dir_path) # 添加上级目录

import father

其中:

代码含义
os.path.realpath(file)获取当前文件的完整路径(包括文件名)
os.path.dirname获取路径,去掉文件名
os.pardir上一层路径,即’··/’
os.path.join路径字符串拼接
os.path.abspath返回绝对路径,可以把’xxx/yyy/zzz/··/'返回为‘xxx/yyy/’
sys.path.append为环境变量增加一个路径
从其他目录导入

如果需要从其他目录导入模块,则需要执行类似上面的操作,增加环境变量后导入。

import sys
sys.path.append(xxx) # 添加yyy模块所在目录xxx

import yyy

参考:

https://blog.csdn.net/guozhibin123/article/details/128307371

https://zhuanlan.zhihu.com/p/523734078

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值