python - 常用模块(3)

一、模块介绍

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示例示例

                python - 常用模块(3)

 

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()函数

 

上一篇:.NET Core中如何对Url进行编码和解码


下一篇:异常处理~