一、模块介绍
1. 导入模块
import语句 import fibo fibo.fib(10)
from…import语句 from fibo import fib fib(10)
from…import*语句 from fibo import* fib(10)
from . import module_name。导入和自己同目录下的模块。
from .package_name import module_name。导入和自己同目录的包的模块。
from .. import module_name。导入上级目录的模块。
from ..package_name import module_name。导入位于上级目录下的包的模块。
当然还可以有更多的﹒,每多一个点就多往上一层目录。
2. 脚本执行模块
模块既可以被其他脚本导入使用,也可以作为脚本直接执行;注意:如果模块是被导入,fib(20)则不会被执行
3. 模块的搜索路径
import sys >>> sys.path
二、python常用模块使用
1. requests的使用
http原理:https://juejin.im/post/5ac1eb2d6fb9a028de44dd414
(1)http请求报文
1xx:指示信息--表示请求已接收,继续处理。
2xx:成功--表示请求已被成功接收、理解、接受。
3xx:重定向--要完成请求必须进行更进一步的操作。
4xx:客户端错误--请求有语法错误或请求无法实现。
5xx:服务器端错误--服务器未能实现合法的请求。
(2)响应头部:set-cookie
(3)http请求行请求
1. http请求方法 HTTP/1.1 定义的请求方法有8种:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS、TRACE
2. 请求地址示例
3. 协议版本 协议版本的格式为:HTTP/主版本号.次版本号,常用的有HTTP/1.0和HTTP/1.1
(4)Form Data
当发起一次POST请求时,若未指定content-type,则默认content-type为application/x-www-form-urlencoded。即参数会以Form Data的形式进行传递,不会显式出现在请求url中
(5)代码实现
data声明为字典格式即可
以下三种post请求方式等效
(6)Request Payload
JSON类型的POST请求(application/json),参数不会显示出现在请求url中
代码实现
第一种方式:将字典格式的data数据赋给post方法的json参数(会自动将字典格式转为合法的json并添加headers)
第二种方式:data声明为字典格式(方便数据添加修改),然后再用json.dumps()方法把data转换为合法的JSON字符串格式,同时需要在headers里声明我们发送的格式
第三种方式:data声明为严格的JSON格式字符串,里面必须用双引号等
(7)Query String Parameters
参数会以url string的形式进行传递,即?后的字符串为其请求参数,并以&作为分隔符
代码实现:
将data组织为字典格式,传给get方法的params参数
获取接口响应数据
Session保持登录状态
2. 数据库操作
(1)常用模块
Pymysql 适用mysql 安装pip install pymysql
Cx_Oracle 适用oracle 安装pip install cx_oracle 注意:Python版本和位数、cx_Oracle版本和位数、Oracle客户端版本和位数(instant_client)http://wiki.rd.800best.com/pages/viewpage.action?pageId=47504944
Sqlalchemy mysql和oracle都适用安装pip install sqlalchemy
(2)使用Python DB API访问数据库流程
Pymysql示例示例
Cx_Oracle示例示例
sqlalchemy示例示例
3. 异常处理
(1)异常处理机制:可以让程序具有良好的容错性,让程序更加健壮
(2)python的所有异常类的基类是BaseException,但是如果要实现自定义异常,应该继承Exception类或其子类
(3)Python常见异常类之间的继承关系:使用try...excepttry...except捕获异常捕获异
1.当python解释器收到异常对象后,会寻找能处理该异常对象的except块,如果找到合适的except块,则把该异常对象交给except块处理,即捕获异常。如果找不到捕获异常的except块,则运行时环境终止,python解释器退出
2.异常捕获原则:先处理小异常,再处理大异常
3.当try块没有异常时会执行else块
4.不管try块中的代码是否出现异常,甚至再try块或except块中执行了return语句,finally块总会被执行
5.在异常处理语法结构中,try必需有,except和finally至少出现其一,且finally位于所有的except块之后
(4)自定义异常:异常处理自定义异常自定义异常
4. 文件读写
(1)文件读写要考虑的问题
1.文件路径
2.文件读写文件读写要考虑的问题:1.文件路径2.文件类型t xt?excel?json?yml?......
3.涉及的操作打开、读、写 (覆写还是追加)
4.字符编码
(2)文件路径的处理:
尽量不要写死!!如:E:\projects\xxx.txt
存在的问题:1.代码在别人电脑上未必是同样路径 2.Linux下与windows下路径分割符不同
(3)txt读写——使用内置函数使用内置函数openop
1.read() 每次读取整个文件,它通常将读取到底文件内容放到一个字符串变量中,也就是说.read() 生成文件内容是一个字符串类型。
2.readline()每只读取文件的一行,通常也是读取到的一行内容放到一个字符串变量中,返回str类型。
3.readlines()每次按行读取整个文件内容,将读取到的内容放到一个列表中,返回list类型。
(4)excel读写
模块的选择–openpyxl Python对Excel的处理模块小结
Workbook 处理工作薄
Worksheet 处理工作表
Cell 处理单元格
考虑因素:
1.平台 windows/linux?
2.Excel的兼容性xls/xlsx 2003/2007... ?
3.文档操作打开/新建/修改/保存?
(5)Openpyxl—常用操作常用操作
(6)pandas
5. 日志输出
https://www.cnblogs.com/yyds/p/6885182.html
Logging模块模
1.日志级别 DEBUG < INFO < WARNING < ERROR < CRITICAL
2.模块级别的函数记录日志
3.logging日志模块四大组件 简单点说就是:日志器(logger)是入口,真正干活儿的是处理器(handler),处理器(handler)还可以通过过滤器(filter)和格式器(formatter)对要输出的日志内容做过滤和格式化等处理操作。
4.配置日志的几种方式
使用Python代码显式的创建loggers, handlers和formatters并分别调用它们的配置函数
创建一个日志配置文件,然后使用fileConfig()来读取该文件的内容
创建一个包含配置信息的dict,然后把它传递给dictConfig()函数