第5章自动化系列五之Python模块

Python自动化
时间:2016.08.18

模块

模块:用来从逻辑上组织Python代码(变量,函数,类,逻辑),本质就是.py结尾。
1.为什么要有模块

    将代码归类,代码调用,代码整洁度,以及架构设计非常重要。

2.Python导入模块依据

导入 import sys
sys.path

3.模块名称的不要和内置模块冲突

模块定义

模块导入

导入单个模块

  1. import module1_name
  2. 调用方法:
  3. module1_name.logger #模块下面的logger方法

导入多个模块

  1. import module1_name,module2_name
  2. 调用方法:
  3. module1_name.brrier #模块1下面的brrier方法
  4. module2_name.logger #模块2下面的logger方法

导入所有模块

  1. from module1_name import * #不建议用
  2. from module1_name import v1,v2,v3 #导入多个模块中的变量
  3. from module1_name import name #导入模块中的name变量
  4. 调用方法:

导入相同模块

  1. from sys import as sys_path #别名防止冲突
  2. from lib import as lib_path #别名防止冲突

导入模块本质

  1. 导入模块的本质就是把python文件解释一遍
  2. 导入包的本质就是执行这个包下的__init__.py文件

内置模块

  1. import time
  2. import sys
  3. import os
  4. import random

random模块

  1. #!/usr/bin/env python
  2. # Author:xuliangwei
  3. #4位验证码功能
  4. import random
  5. checkcode = ''
  6. for i in range(5):
  7. current = random.randrange(0,5)
  8. if current == i:
  9. tmp = chr(random.randint(65,90)) # 大写字母
  10. else:
  11. tmp = random.randint(0,9)
  12. checkcode +=str(tmp) # 数字
  13. print(checkcode)

os模块

sys模块

shelve模块

hashlib模块

re模块

  1. re.match #用的少
  2. re.search
  3. re.findall #没有group方法
  4. re.split
  5. re.sub

开源模块

  1. 1.两种安装方式
  2. pip3安装
  3. pip3 install requests
  4. 源码安装
  5. cd xx
  6. python3 setup.py install

XML模块

PyYAML模块

configparser模块

自定义模块

json

json更加适合跨语言,字符串,基本数据类型
序列化:将数据类型转化成字符串。
反序列化:将字符串在反序列化为Python的基本类型

将Python基本数据类型转化成字符串形式

  1. #!/usr/bin/env python
  2. # Author:xuliangwei
  3. import json
  4. dic = {'k1':'v1'}
  5. print(dic,type(dic))
  6. result = json.dumps(dic)
  7. print(result,type(result))

执行结果:

  1. {'k1': 'v1'} <class 'dict'>
  2. {"k1": "v1"} <class 'str'>

将Python字符串形式转化成基本数据类型

  1. #!/usr/bin/env python
  2. # Author:xuliangwei
  3. import json
  4. s1 = '{"k1": "v1"}'
  5. import json
  6. dic = json.loads(s1)
  7. print(dic,type(dic))

执行结果:

  1. {'k1': 'v1'} <class 'dict'>
  1. import json
  2. li = [11,22,33]
  3. json.dump(li,open('db','w'))
  4. json.load(open('db','r'))
  5. print(type(li),li)

pickle

pickle仅适用于Python Python所有类型的序列化,仅适合序列化
支持任何数据类型

  1. import pickle
  2. li = [11,22,33]
  3. r = pickle.dumps(li) #dumps
  4. print(r)
  5. result = pickle.loads(r) #loads
  6. print (result)
  7. pickle.dump(li, open('db','wb')) #dump
  8. result = pickle.load(open('db', 'rb')) #load
  9. print(result,type(result))

time

log