IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python从上级目录导入import包 -> 正文阅读

[Python知识库]python从上级目录导入import包

python从上级目录导入import包

一、简介

python的关键字import可以导入各种模块,包括自定义的模块
import的用法通常有两种:
1、不指定别名直接导入

import modulename

2、指定别名导入

import modulename as customname

3、使用from进行导入模块中的部分属性

from modeulename import func1, func2

现在我们考虑以下问题,假如我们的文件目录如下

--dir0
  | file1.py
  | file2.py
  | --dir1
      | file3.py
      | file4.py
  | --dir2
      | file5.py

二、导入同级模块

--dir0
  | file1.py
  | file2.py
  | --dir1
      | file3.py
      | file4.py
  | --dir2
      | file5.py

如果我们希望在file2.py文件中导入file1.py文件,那么直接使用import在同级中进行导入就可以了。
在file2.py文件中

import file1

同样的道理,如果我们希望在file3.py文件中导入file4.py文件,那么也是可以直接进行导入的。
在file3.py文件中

import file4

三、导入下级模块

--dir0
  | file1.py
  | file2.py
  | --dir1
      | file3.py
      | file4.py
  | --dir2
      | file5.py

如果我们希望在file1.py文件中导入,子目录dir1中的file3.py文件,那么需要在下级文件中创建一个空白的__init__.py文件,这个文件的作用是将该目录初始化为一个包,以便进行导入。

--dir0
  | file1.py
  | file2.py
  | --dir1
      | __init__.py
      | file3.py
      | file4.py
  | --dir2
      | file5.py

然后我们可以在file1.py中这样进行导入

import dir1.file3

或者

from dir1 import file3

四、导入上级模块

--dir0
  | file1.py
  | file2.py
  | --dir1
      | __init__.py
      | file3.py
      | file4.py
  | --dir2
      | file5.py

如果我们希望在file3.py文件中导入上级目录dir0中的file1.py文件,我们需要使用到sys库

import sys
sys.path.append('..')

'..'的含义是搜索路径返回上一层级,那么其实对于在dir1中的文件来说,默认的搜索路径是在dir1文件夹内,那么使用了这一语句之后,搜索路径是从dir0开始,那么我们直接再进行导入就可以了。

在file3.py文件中

import sys
sys.path.append('..')
import file1

五、导入其他任意位置模块

--dir0
  | file1.py
  | file2.py
  | --dir1
      | __init__.py
      | file3.py
      | file4.py
  | --dir2
      | file5.py

如果我们希望在file5.py文件中导入file3.py文件,这算是同级导入,那么我们其实可以采用上一个方法。

在file5.py文件中

import sys
sys.path.append('..')
import dir1.file3

或者

import sys
sys.path.append('..')
from dir1 import file3

其实这样我们可以导入任意位置的模块,关键的一点是要把该模块的位置加入python的搜索路径sys.path,我们可以使用绝对路径来做到这一点。

比如dir0在内存中的存放位置为C:\buffer\study_data\dir0
在file5.py文件中

import sys
sys.path.append('C:\buffer\study_data\dir0')
from dir1 import file3

六、Reference

https://zhuanlan.zhihu.com/p/64893308
https://www.cnblogs.com/f-ck-need-u/p/9961372.html

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-17 22:06:24  更:2022-03-17 22:06:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 19:22:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码