【python】python下的跨目录import模块

这篇具有很好参考价值的文章主要介绍了【python】python下的跨目录import模块。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

python下的跨目录import操作

在使用C++语言进行项目开发时,如果需要调用其他目录的头文件时,直接#include "xxx/xxx/xxx/xxx.h"就可以实现,但是在python下的用法不大一样。

下级目录中的模块导入

这个最简单,也最常见。假设目录格式如下,运行的是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以上已经失效!!!
找到的链接:
python import 上级目录的导入_python
python中import上级sys.path.append(‘…‘) 失效
我亲测使用Python3.9是跑不通的,仍然报错:找不到模块

最后实现的可用写法如下:

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

关于python中的import操作,这篇文章写得挺好:[Python] 再研究一下Python的import机制文章来源地址https://www.toymoban.com/news/detail-628733.html

到了这里,关于【python】python下的跨目录import模块的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python中import模块导入的实现原理

    欢迎关注博主 Mindtechnist 或加入【Linux C/C++/Python社区】一起探讨和分享Linux C/C++/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。 专栏:《python从入门到实战》 什么是模块 一个.py文件就是一个模块,即Module。 模块分为三种:python标准库、

    2024年02月12日
    浏览(39)
  • 基于linux下的高并发服务器开发(第一章)- 目录操作函数

     (1)int mkdir(const char* pathname,mode_t mode); #include sys/stat.h #include sys/types.h int mkdir(const char *pathname, mode_t mode);     作用:创建一个目录     参数:          pathname: 创建的目录的路径         mode: 权限,八进制的数     返回值:          成功返回0, 失败返回-1  (

    2024年02月16日
    浏览(45)
  • 【Python】获取指定目录下的文件夹和文件

    我们经常会有对文件做批量处理的需求,获取指定目录下的文件夹和文件(有时需要获取所有文件,即子目录下的文件也需要获取)。Python 中扫描目录有两种方法: os.listdir() os.walk() 建立项目框架如下: 其中, test:项目文件夹名称,含有 aa子文件夹 和 main.py aa:文件夹,含

    2024年02月17日
    浏览(71)
  • Matlab/Python教程系列 | 根据目录下的已有图片制作视频(动画)

    注1:本文系“MATLAB/Python编程教程”系列之一,致力于使用Python和Matlab实现特定的功能。本次要实现的功能是:根据目录下的已有图片制作视频(动画)。 在这个教程中,我们将一起学习如何使用MATLAB和Python编程语言,根据目录下的已有图片制作视频(动画)。我们将从头开始,逐

    2024年02月09日
    浏览(45)
  • Python os.listdir方法(获取文件夹目录下的内容)

    os.listdir 方法。参数为文件夹路径, 可以返回文件夹下的所有子文件、文件名称, 但不能返回子文件夹下的文件

    2024年02月14日
    浏览(60)
  • Python from import导包ModuleNotFoundError No module named,找不到模块问题

    在学习Flask框架的蓝图时,遇到导包时用到了`from . 模块 import 对象`,然后试了试直接 import会报错,直接告诉我找不到模块,发现问题以此记录。 有一个flask框架的项目,目录结构如下: 有一个主包pro_flask,然后下面有两个子包admin和web,还有和pro_flask同级的启动文件 我在与

    2023年04月12日
    浏览(38)
  • python 导入同级目录文件、上级目录文件以及下级目录数据集和模块包

    一. python import 上级目录: 1.1 第一种方法: 有时候我们可能需要import另一个路径下的python文件,例如下面这个目录结构,我们想要在_train.py里import在networks目录下的_lstm.py和上级目录下的_config.py。 只需两步操作 : 1. 在networks文件夹下创建空的__init__.py文件 2. 使用sys库添加路径

    2024年02月12日
    浏览(43)
  • python遍历文件夹下的所有子文件夹,并将指定的文件复制到指定目录

    在1文件夹中有1,2两个文件夹 将这两个文件夹中的文件复制到 after_copy中 源文件 复制后: 参考1 源文件 复制后 参考2 如果复制bmp文件就将 suffix = \\\".json\\\" 改为 suffix = \\\".bmp\\\"

    2024年02月11日
    浏览(92)
  • 【100天精通python】Day20:文件及目录操作_os模块和os.psth模块, 文件路径拼接,目录操作

    目录 专栏导读  1 文件的目录操作  os模块的一些操作目录函数​编辑

    2024年02月14日
    浏览(52)
  • python使用matplotlib时报错ImportError: DLL load failed while importing _cext: 找不到指定的模块。

    python环境为Python 3.11.4,matplotlib版本matplotlib 3.7.2 pip matplotlib 正常安装,在python里面执行import matplotlib时报错如下信息: 解决方法:安装Microsoft Visual C++ 2015 Redistributable Update 3即可 Microsoft Visual C++ 2015 Redistributable Update 3地址: https://www.microsoft.com/zh-CN/download/details.aspx?id=53587

    2024年02月06日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包