首页 > 代码库 > python--常见模块学习

python--常见模块学习

本节大纲:

1.模块介绍

2.time&datetime

3.random.

4.os

5.sys

6.shutil

7.json&picle

8.shelve

9.xml处理

10.yaml处理

11.configparser

12.hashlib

13.subprocess

14.logging模块

15.re正则表达式

模块的定义:用一堆代码实现了某个功能的代码集合

类似与函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合,而对于一个复杂的功能来说,可能需要多个函数才能完成(函数又可以在不同的.py文件中),n个.py文件组成的代码集合就称为模块

如:os是系统相关的模块,file是文件操作相关的模块

模块分为三种:

自定义模块

内置模块

开源模块(第三方模块)

 

自定义模块

1.定义模块

情景一

技术分享

情景二

技术分享

 2.导入模块

在python中,要想使用模块,需要先导入,导入模块有以下几种方式:

如要导入一个名为module的模块

1 import module
2 from module.xx.xx import xx
3 from module.xx.xx import xx as rename  
4 from module.xx.xx import *
#*号这种导入模式会导入一个模块中的所有项目,这种方法虽然很简单,便利,但是不推荐使用,
#因为引入的其他来源的命令,很可能覆盖了已有的定义,存在一定的安全隐患

导入模块其实就是在告诉Python解释器去解释那个py文件

如果导入的是一个py文件,解释器就解释该py文件

如果导入的是一个包,解释器就解释该包下的__init__.py文件

Python中,导入模块时是根据那个路径作为基准来进行的呢?

可通过sys模块中的sys.path来查看

import sys
print(sys.path)

#[‘D:\\PycharmProjects\\fullstack\\homework_oneday\\module\\module_file‘, ‘D:\\PycharmProjects\\fullstack‘, ‘C:\\Program Files\\Python35\\python35.zip‘, ‘C:\\Program Files\\Python35\\DLLs‘, ‘C:\\Program Files\\Python35\\lib‘, ‘C:\\Program Files\\Python35‘, ‘C:\\Program Files\\Python35\\lib\\site-packages‘]

如果sys.path路径列表中没有你想要的路径,可以通过sys.path.append(‘路径‘)添加

通过os模块可以获取各种目录

import sys
import os

pre_path = os.path.abspath(../)
sys.path.append(pre_path)

 

包(package)的概念

我们先设想一下,如果不同的人编写的模块名相同怎么办?为了避免冲突,Python又引进了按目录

来组织模块的方法,称为包(package)。

假设,如下图,我的两个time_file.py模块名字重名了,但是这两个模块的功能都不相同,如果这两个模块都在同一级目录中,那么我在其他地方要调用这个time_file.py模块,那么这个时候就会发生冲突,在这里我们就可以通过包来组织模块,避免冲突,

技术分享

方法是:选择一个顶层包名,引入包以后,只要顶层的包名不与别人冲突,那这个包里面的模块都不会与别人冲突了。

请注意:每个包目录下来都会有一个__init__.py的文件,这个文件必须是存在的,否则,Python就不把这个目录当成普通目录,而不是一个包,__init__.py可以是空文件,也可以有python代码,__init__.py本身就是一个文件,它的模块命就是对应的包名,它一般由于做接口文件

python--常见模块学习