想做Python开发,这14种常用Python模块,你必须知道!

一、模块介绍

1. 定义:

模块:本质就是.py结尾的python文件(文件名:test.py,对应的模块名:test)

用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能)

2. 语法:

• import 语句

当解释器遇到import语句,如果模块在当前的搜索路径就会被导入。搜索路径是一个解释器会先进行搜索的所有目录的列表。

导入模块:

1、 import module1[, module2[,... moduleN]

调用符号:

• From…import 语句

Python的from语句让你从模块中导入一个指定的部分到当前命名空间中。语法如下:

1、from modname import name1[, name2[, ... nameN]]

From…import* 语句

把一个模块的所有内容全都导入到当前的命名空间也是可行的,只需使用如下声明:

1、from modname import *

这提供了一个简单的方法来导入一个模块中的所有项目。慎用 from…import *。

• import 和 from 的区别:

import导入使用时,加前缀 module.func。相当于把模块代码放在当前文件中执行一遍。

from可以指定需要的函数或变量导入。

导入模块和当前py文件都有同一个函数,调用会调用哪一个?

因为python是解释型,所以后面覆盖前面。

• from … import … as …

3. import本质

import 本质:

导入一个模块本质就是解释执行一个python文件

导入一个包本质就是解释该包下的__init__.py文件

• __init__.py

:本质就是一个目录(必须带有一个__init__.py文件),用来从逻辑上组织模块

导入包,怎么导入?

导入包的本质:执行包下面的__init__.py文件

导入包下的模块

包下面的模块,这样调用是错误的

在__init__.py内容中导入模块

4、路径搜索和搜索路径

上面提到的都是导入同级目录下的模块,如果不在同一个目录下:

import module_name实际找module_name.py文件,是文件就一定要有路径。

导入模块就是:找到.py文件的位置,把它执行一遍,从哪里找呢?sys.path.

5. 导入优化

6. 阻止属性导入

如果你不想让某个模块属性被 “from module import *” 导入 , 那么你可以给你不想导入的属性名称加上一个下划线( _ )。 不过如果你导入了整个模块或是你显式地导入某个属性这个隐藏数据的方法就不起作用了。

二、模块的分类

a:标准库

b:开源模块-第三方模块

c:自定义模块

三、常用内置模块

1、os模块

用于提供系统级别的操作

2、time和datetime

在Python中,通常有这几种方式来表示时间:

时间戳

格式化的时间字符串

元组(struct_time)共九个元素。

由于Python的time模块实现主要调用C库,所以各个平台可能有所不同。

UTC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间。在中国为UTC+8。DST(Daylight Saving Time)即夏令时。

时间戳(timestamp)的方式:通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time)”,返回的是float类型。返回时间戳方式的函数主要有time,clock等。

元组(struct_time)方式:struct_time元组共有9个元素,返回struct_time的函数主要有gmtime,localtime,strptime。

时间转为时间戳

格式化时间字符串

转化时间戳和元组到时间字符串

时间加减

3、random模块

4、sys模块

5、shutil模块

高级的 文件、文件夹、拷贝、压缩包等 处理模块

6、ConfigParser

用于对特定的配置进行操作,当前模块的名称在 python 3.x 版本中变更为 configparser。

来看一个好多软件的常见文档格式如下

如果想用python生成一个这样的文档怎么做呢?

• 生成

• 读取出来

• configparser增删改查语法

7、hashlib模块

用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法,hash 加密都是bytes类型

python 还有一个 hmac 模块,它内部对我们创建 key 和 内容 再进行处理然后再加密

8、Subprocess模块

调用subprocess.run(…)是推荐的常用方法,在大多数情况下能满足需求,但如果你可能需要进行一些复杂的与系统的交互的话,你还可以用subprocess.Popen,语法如下:

可用参数:

args:shell命令,可以是字符串或者序列类型(如:list,元组)

bufsize:指定缓冲。0 无缓冲,1 行缓冲,其他 缓冲区大小,负值 系统缓冲

stdin, stdout, stderr:分别表示程序的标准输入、输出、错误句柄

preexec_fn:只在Unix平台下有效,用于指定一个可执行对象(callable object),它将在子进程运行之前被调用

close_sfs:在windows平台下,如果close_fds被设置为True,则新创建的子进程将不会继承父进程的输入、输出、错误管道。 所以不能将close_fds设置为True同时重定向子进程的标准输入、输出与错误(stdin, stdout, stderr)。

shell:同上

cwd:用于设置子进程的当前目录

env:用于指定子进程的环境变量。如果env = None,子进程的环境变量将从父进程中继承。

universal_newlines:不同系统的换行符不同,True -> 同意使用

startupinfo与createionflags只在windows下有效 将被传递给底层的CreateProcess函数,用于设置子进程的一些属性,如:主窗口的外观,进程的优先级等等

终端输入的命令分为两种:

• 输入即可得到输出,如:ifconfig

• 输入进行某环境,依赖再输入,如:python

需要交互的命令示例

9、re-正则表达式模块

常用正则表达式符号

最常用的匹配语法

分组匹配 和 group、groups、groupdict

10、logging模块

python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,logging的日志可以分为 debug, info, warning, error and critical 5个级别,下面我们看一下怎么用。

最简单用法

看一下这几个日志级别分别代表什么意思

如果想把日志写到文件里,也很简单

其中下面这句中的level=loggin.INFO意思是,把日志纪录级别设置为INFO,也就是说,只有比日志是INFO或比INFO级别更高的日志才会被纪录到文件里,在这个例子, 第一条日志是不会被纪录的,如果希望纪录debug的日志,那把日志级别改成DEBUG就行了。

如果想同时把log打印在屏幕和文件日志里,就需要了解一点复杂的知识 了

11、json和pickle数据序列化

str eval

数据序列化

json只能处理简单的,所有语言通用的,函数不能json序列化

pickle可以序列化python所有的数据类型

12、shelve 模块

shelve模块是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式

13、xml处理模块

xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,json之前的交换方式

参考文档:

14、PyYAML模块

Python也可以很容易的处理ymal文档格式,只不过需要安装一个模块,参考文档

需要python教程+PDF电子书的小伙伴

关注微信公众号:速学Python,后台回复:简书,即可拿Python学习资料

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,265评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,078评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,852评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,408评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,445评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,772评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,921评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,688评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,130评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,467评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,617评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,276评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,882评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,740评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,967评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,315评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,486评论 2 348

推荐阅读更多精彩内容

  • 模块和包 一 模块 1 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是...
    go以恒阅读 2,263评论 0 4
  • 常用模块 认识模块 什么是模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文...
    go以恒阅读 1,943评论 0 6
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,723评论 0 10
  • 从17:35到18:28,我用53分钟完成了对《好好学习》的检视阅读。 过程中,我严格对照了永澄总结的...
    茶壶喷水斯基阅读 292评论 0 1
  • 一湾流水溪桥小, 两岸青山竞妖娆。 三丛翠竹画疏影。 四面秋风催嫩条。 五颜六色野花美, 七沟八梁如梦陶, 九州贵...
    云逸1108阅读 136评论 0 1