首页 » Python » Python 从入门到放弃 - Lesson 5 常用模块

Python 从入门到放弃 - Lesson 5 常用模块

 
文章目录

模块和包导入

模块导入方法

import XXX

根据环境变量PATH的内容查找模块并导入

from YYY import XXX

1. from dir import module

2. from mudule import [function or var or *]

包导入

python包导入等于导入包下面的__init__.py文件,即将包中的代码拷贝到当前文件中执行一次

假设目录结构如下

package_test
   |- __init__.py
   |- test.py
import_package.py

如果要引入包下面的模块,要么使用前面说的from dir import module的方式,要么直接在包的__init__文件中写上import
导入包本质上是导入包内的__init__文件,即把__init__文件内容放到当前文件中执行一次

动态加载模块

常用模块

python中模块一般分为以下三类:

1. 标准库
2. 第三方模块
3. 自定义模块

time与datetime

时间格式

python中的三种时间格式:

1. 时间戳(timestamp格式):自1970-01-01 08:00:00以来的秒数

2. 时间元组(struct_time格式):将时间拆分成九个元组

返回值格式

time.struct_time(tm_year=2019, tm_mon=2, tm_mday=17, tm_hour=21, tm_min=27, tm_sec=50, tm_wday=6, tm_yday=48, tm_isdst=0)

3. 字符串时间格式

返回值格式

Sun Feb 17 22:04:32 2019

时间格式互转

datetime模块

random模块

用于产生随机数

os模块

目录操作

系统信息相关的属性

路径操作

文件信息

sys模块

shutil模块

高级文件、文件夹、压缩包处理模块

文件操作

目录操作

文件打包和压缩

zipfile模块

zipfile模块会对文件进行压缩

tarfile模块

tarfile模块对文件和目录进行打包(但不压缩)

shelve模块

以K/V方式保存内存中的数据到文件,支持所有pickle支持的数据类型

xml模块

XML格式

读取xml

修改xml内容

创建xml文件

PyYAML模块

略,详见

http://pyyaml.org/wiki/PyYAMLDocumentation 

ConfigParser模块

用于生成和修改配置文件,例如MySQL配置文件

[client]
port = 3306
socket = /tmp/mysql.sock

[mysqld]
port = 3306
socket = /tmp/mysql.sock

basedir = /usr/local/mysql
datadir = /data/mysql
pid-file = /data/mysql/mysql.pid
user = mysql
bind-address = 0.0.0.0
server-id = 1

[mysqldump]
max_allowed_packet = 16M

[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M

创建配置

读取配置

修改配置

hashlib模块和hmac模块

用于计算MD5值或者SHA值

hashlib

hmac

加盐计算MD5

re模块

正则表达式基础

'.'     默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行
'^'     匹配字符开头,若指定flags MULTILINE,这种也可以匹配上(r"^a","\nabc\neee",flags=re.MULTILINE)
'$'     匹配字符结尾,或e.search("foo$","bfoo\nsdfsf",flags=re.MULTILINE).group()也可以
'*'     匹配*号前的字符0次或多次,re.findall("ab*","cabb3abcbbac")  结果为['abb', 'ab', 'a']
'+'     匹配前一个字符1次或多次,re.findall("ab+","ab+cd+abb+bba") 结果['ab', 'abb']
'?'     匹配前一个字符1次或0次
'{m}'   匹配前一个字符m次
'{n,m}' 匹配前一个字符n到m次,re.findall("ab{1,3}","abb abc abbcbbb") 结果'abb', 'ab', 'abb']
'|'     匹配|左或|右的字符,re.search("abc|ABC","ABCBabcCD").group() 结果'ABC'
'(...)' 分组匹配,re.search("(abc){2}a(123|456)c", "abcabca456c").group() 结果 abcabca456c
 
 
'\A'    只从字符开头匹配,re.search("\Aabc","alexabc") 是匹配不到的
'\Z'    匹配字符结尾,同$
'\d'    匹配数字0-9
'\D'    匹配非数字
'\w'    匹配[A-Za-z0-9]
'\W'    匹配非[A-Za-z0-9]
's'     匹配空白字符、\t、\n、\r , re.search("\s+","ab\tc1\n3").group() 结果 '\t'
 
'(?P...)' 分组匹配 re.search("(?P[0-9]{4})(?P[0-9]{2})(?P[0-9]{4})","371481199306143242").groupdict("city") 结果{'province': '3714', 'city': '81', 'birthday': '1993'}

re匹配

原文链接:Python 从入门到放弃 - Lesson 5 常用模块,转载请注明来源!

0