首页 > Python资料 博客日记
python——模块导入
2024-08-16 23:00:07Python资料围观108次
一、模块
1.1 模块 module
定义:包含一系列数据,函数,类的文件,通常以.py结尾
1.1.1 模块导入
三种模块导入方法:
1. import 模块名
将某个模块的整体导入到当前模块中
2. from 模块名 import 成员
将模块的指定成员导入到当前模块作用域中
3. from 模块名 import *
将指定模块的所有成员导入到当前模块作用域中
注意:导入模块和本模块中变量/函数不能重名,如果重名需要重新命名,代码如下
from 模块名 import 变量名 as 新名字
代码操作如下:
先在同一个项目下,创建多个.py文件,我们先从同一目录下简单情况开始。
在导入模块时,会自动先运行一遍,比如导入demo1时,demo1中第二行语句就会先运行。
接下来我们尝试一下第二种方法 from 模块名 import 成员
再尝试一下第三种方法 from 模块名 import *,一次性导入所有成员,而且调用的时候,不用像方法一加模块名
遇到不同模块中存在同名函数或者函数名过于冗余,便于记忆,可以更改名字。
这里,f1 --> func; f2 --> fund
1.1.2 隐藏成员
模块中以下划线开头的属性不会被导入,称为隐藏成员,注意:隐藏成员只针对第三种导入模块方法,对其他两种方法不影响。
唯独第三种方法无法调用隐藏属性,出现报错。
1.1.3 模块变量
- __file__:获取模块对应的文件路径名,该路径是绝对路径,也就是从操作系统的根开始。
- __name__:模块自身的名字,可以判断是否为主模块。
注意:当此模块作为主模块运行的时候,__name__绑定的是__main__;当模块被其他模块导入时,绑定的是模块名。
此时,我们在demo8中导入demo1模块,并且运行demo8,就可以比较__name__的区别。
import demo1
# 若不是以该模块为主模块运行,则不重要的代码可以不运行
if __name__ == 'main':
print('主程序')
1.1.4 模块分类
类型
1.内置模块,可以直接使用,比如max(),sum()等
2.标准库模块,安装python的时候已经安装可以直接导入使用,如import time,import random。
3.第三方模块,通常是开源的,需要自己安装。
通常在命令窗口或者terminal窗口中使用 pip install 模块名,但是由于pip默认从官网安装,下载速度回比较慢。
我们可以进行换源安装。使用 pip install 模块名 -i 国内源的地址
pip list 查询所有安装的库
pip install 库名 安装库
pip unistall 库名 删除这个库
PIP国内源
1)清华大学
PIP源地址:https://pypi.tuna.tsinghua.edu.cn/simple
2)阿里云
PIP源地址:http://mirrors.aliyun.com/pypi/simple/
3)豆瓣
PIP源地址:http://pypi.douban.com/simple/
4)中国科学技术大学
PIP源地址:http://pypi.mirrors.ustc.edu.cn/simple/
5)华中科技大学
PIP源地址:http://pypi.hustunique.com/
4.用户自己编写的模块(可以作为别人的第三方模块)
我们先看一下自己原本的库,在python的界面下方选择terminal并输入pip list,目前有pip和setuptool两个库文件。
接下来输入pip install pygame -i 国内源地址,下载一个pygame的库,稍等几分钟就可以看到成功安装了pygame-2.5.2的库。
1.2 包 package
义:将模块以文件夹的形式进行分组管理,其实就是管理模块的,目的是为了结构清晰而发明。
1.2.1 包的导入
语法:
from 包名.模块名 import 成员
首先,我们要看清楚每个层级都有哪些文件、包。
# 导入的模块、包不属于同级路径时
# 在demo9中导入package01包中的模块m01中的f1函数
from package01.m01 import f1
f1() # m01 ==> f1
# 也可以选择导入模块m01
import package01.m01
package01.m01.f1() # m01 ==> f1
# 前缀太长,还可以重命名
import package01.m01 as p1
p1.f1() # m01 ==> f1
# 多层包也要逐级
from package01.package02.m02 import f2
f2() # m02 ==> f2
1.2.2 _ init _.py
init 是包内必须存放的文件,文件会在包加载时被自动调用。
把一些相同的类似功能的模块放在一个文件夹里面,进行统一管理,在导入这个包里面的模块的时候,__init__.py的代码也会自动执行,所以可以利用这个机制,在__init__.py里面写上关于这个包内模块的使用说明。
我们导入同级别包下面的别的模块,也同样会输出init的内容。
# 导入包的时候会自动运行一遍__init__.py
# 运行demo9.py
from package01.m01 import f1
f1()
========
这是package01中的init
m01 ==> f1
二 常用模块
2.1 sys (system的缩写)
sys.modules | 获取当前程序中引入的所有模块(返回的是字典类型,字典的key是模块名,字典的value是模块对象) |
sys.path | 返回一个列表,列表中保存的是模块的搜索路径 |
sys.exit() | 退出程序 |
import sys
sys.modules # 获取当前程序中引入的所有模块
print(sys.modules) # 单行输出字典
import sys
sys.modules # 获取当前程序中引入的所有模块
import pprint # pprint对打印的数据做简单的格式化
pprint.pprint(sys.modules)
2.2 os
os是系统交互模块,python指定cmd指令。
os.system() | 可以用来执行操作系统的命令,主要用来写cmd的指令 |
os.getcwd() | 获取当前python的工作目录 |
os.mkdir('文件名') | 在当前目录下创建文件夹,括号里面是文件夹名 |
os.rmdir() | 在当前目录下删除文件夹,括号里面是文件名(只能删除空文件夹) |
os.remove('文件名') | 删除文件 |
os.rename('A.py', 'B.py') | 括号里面是两个参数,第一个是原名,第二个是新名 |
os.path.exists(path='同级目录下的文件') | 判断文件是否存在 |
os.path.isfile(path='同级目录下的文件') | 判断是否为文件 |
2.3 time
time.time() | UTC时间 :1970年开始到现在所经过的秒数 |
time.localtime() | time.struct_time(tm_year=2024, tm_mon=4, tm_mday=24, tm_hour=23, tm_min=18, tm_sec=44, tm_wday=2, tm_yday=115, tm_isdst=0) |
time.sleep(时间) | 休眠,括号里面是休眠的时间(秒) |
time.strftime('格式',要转换的时间) | %Y 年 %m 月 %d 日 %H 时 %M 分 %S 秒 |
import time
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))
=======
2024-04-24 23:21:08
2.4 random
random.random() | 生成一个0-1的随机数 |
random.randint(start,end) | 在起点和终点的范围内随机一个整数,左闭右闭区间 |
random.choice(['A', 'B', 'C']) | 随机生成列表里面的一个元素 |
random.uniform(1, 10) | 生成随机范围内的小数,参数是开始值和结束值 |
random.shuffle(序列名) | 打乱序列类型的顺序 |
2.5 json
json是一种文件存储格式,主要用于存储。
序列数据:机器码(底层的0和1)
反序列数据:程序员写的看的代码
序列化之后存储的是字符串类型
# 序列化,序列化结果是 字符串类型
import json
json_data = json.dumps([1,2,'光学','土木'])
print(json_data) # [1, 2, "\u5149\u5b66", "\u571f\u6728"]
print(type(json_data)) # <class 'str'>
# 反序列化
ori_data = json.loads(json_data) # 反序列化
print(ori_data) # [1, 2, '光学', '土木']
print(type(ori_data)) # <class 'list'>
标签:
相关文章
最新发布
- 光流法结合深度学习神经网络的原理及应用(完整代码都有Python opencv)
- Python 图像处理进阶:特征提取与图像分类
- 大数据可视化分析-基于python的电影数据分析及可视化系统_9532dr50
- 【Python】入门(运算、输出、数据类型)
- 【Python】第一弹---解锁编程新世界:深入理解计算机基础与Python入门指南
- 华为OD机试E卷 --第k个排列 --24年OD统一考试(Java & JS & Python & C & C++)
- Python已安装包在import时报错未找到的解决方法
- 【Python】自动化神器PyAutoGUI —告别手动操作,一键模拟鼠标键盘,玩转微信及各种软件自动化
- Pycharm连接SQL Sever(详细教程)
- Python编程练习题及解析(49题)
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Anaconda版本和Python版本对应关系(持续更新...)
- Python与PyTorch的版本对应
- Windows上安装 Python 环境并配置环境变量 (超详细教程)
- Python pyinstaller打包exe最完整教程