python中常用模块总概括(二)以及深浅拷贝简述

一,logging·模块

也称为日志模块,就是记录。

分为五个等级:类似于火情警报,等级越高事态越严重。

debug日志,级别为10

info日志,级别为20

warning日志,级别为30

error日志,级别为40

critical日志,级别为50

四个对象:

logger 对象:负责产生日志

filer 对象:过滤日志

handler对象:控制日志输出位置

format对象:控制日志规定的格式

logging.basicConfig()函数中可通过具体参数来更改logging模块默认行为,可用参数有:

filename:用指定的文件名创建FiledHandler,这样日志会被存储在指定的文件中。
filemode:文件打开方式,在指定了filename时使用这个参数,默认值为“a”还可指定为“w”。
format:指定handler使用的日志显示格式。
datefmt:指定日期时间格式。
level:设置rootlogger(后边会讲解具体概念)的日志级别
stream:用指定的stream创建StreamHandler。可以指定输出到sys.stderr,sys.stdout或者文件(f=open(‘test.log’,’w’)),       默认为sys.stderr。若同时列出了filename和stream两个参数,则stream参数会被忽略。

format参数中可能用到的格式化串:
%(name)s Logger的名字
%(levelno)s 数字形式的日志级别
%(levelname)s 文本形式的日志级别
%(pathname)s 调用日志输出函数的模块的完整路径名,可能没有
%(filename)s 调用日志输出函数的模块的文件名
%(module)s 调用日志输出函数的模块名
%(funcName)s 调用日志输出函数的函数名
%(lineno)d 调用日志输出函数的语句所在的代码行
%(created)f 当前时间,用UNIX标准的表示时间的浮 点数表示
%(relativeCreated)d 输出日志信息时的,自Logger创建以 来的毫秒数
%(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
%(thread)d 线程ID。可能没有
%(threadName)s 线程名。可能没有
%(process)d 进程ID。可能没有
%(message)s用户输出的消息

二,hashlib模块(加密模块)

其中最常用的算法是 md5 算法。

调用md5将明文放进去,然后它帮你造出来一个密文对象:

import hashlib
md = hashlib.md5()  #生成一个造密文对象
md.update(b‘hello‘)    #往对象里传明文数据
md.hexdigest()       #获取明文对应的密文

密文的长度越长,内部对应的算法越复杂。占用空间大,消耗的时间也多。

该模块的应用场景

1.校验文件内容是否相同

2.密码的密文存储

二--1

hashlib 模块加盐处理

在一个加密数据之前,先添加一些数据之外自定义东西。

即使撞库,也不知道哪个是真正的数据。当然,如果你执着撞库的话,也是可以获取真正的数据的。

还有个动态加盐,就是说自定义的东西是不断变化的。

三,openpyxl 模块(只支持03版本后的excel)

用代码操作excel表格。

xlwd 写excel

xlrt 读excel

from openpyxl import Workbook:

wb = Workbook()
wb1 = wb.create_sheet(‘index‘)
wb.save(‘test.xlsx‘)

四,包的使用

就是一个文件夹下有多个模块,那么这个文件夹就是包。其本质仍然是个模块

优点:节省代码冗余,可以更加有条理的管理模块

而用包下的模块,步骤与模块有些许不同:

1.创建一个包下__init__py文件的名称空间

2.执行包下的__init__py文件种的代码,将产生的名字放入其中。

3.在执行文件中拿到一个指向包下的__init__py名称空间里的名字

在导入语句中,点号的左边永远是个包

五,深浅拷贝

copy.copy浅拷贝:

import copy
l = [1,2,[1,2]]
l1 = copy.copy(l)
l[1] = 3   #修改不可变类型数据
print (l)#  [1,3,[1,2]]  #原列表变动
print(l1) #[1,2,[1,2]]   #copy列表不动

l = [1,2,[1,2]]
l1 = copy.copy(l)
l[2][1]= 3       #修改可变类型
print (l)#  [1,2,[1,3]]   原列表变动
print(l1) #[1,2,[1,3]]    copy列表也变动

图解:

 深拷贝:copy.deepcopy

import copy
l = [1,2,[1,2]]
l1 = copy.deepcopy(l)  #深拷贝
l[1] = 3
l[2][1] = 3
print(l)   #[1,3,[1,3]]   #原列表改变
print(l1)  #[1,2,[1,2]]  # copy列表不改变

图解:

原文地址:https://www.cnblogs.com/wujc3/p/11215026.html

时间: 2024-08-30 08:02:05

python中常用模块总概括(二)以及深浅拷贝简述的相关文章

python中常用模块详解二

log模块的讲解 1 Python 使用logging模块记录日志涉及四个主要类,使用官方文档中的概括最为合适: 2 3 logger提供了应用程序可以直接使用的接口API: 4 handler将(logger创建的)日志记录发送到合适的目的输出: 5 formatter决定日志记录的最终输出格式 6 filter提供了细度设备来决定输出哪条日志记录: 7 8 logger 9 每个程序在输出信息之前都要获得一个Logger.Logger通常对应了程序的模块名, 10 比如聊天工具的图形界面模块

python中的join、set集合、深浅拷贝

一. join 1. str中的join方法. 把列表转换成字符串 2. 列表和字典在循环的时候不能直接删除. 需要把要删除的内容记录在新列表中. 然后循环新列表.删除字典或列表 3. fromkeys() 1. 返回新字典. 对原字典没有影响 2. 后面的value.是多个key共享一个value 二. set集合 特点:无序, 不重复, 元素必须可哈希(不可变) 作用:去重复 本身是可变的数据类型. 有增删改查操作. frozenset()冻结的集合. 不可变的. 可哈希的 三. 深浅拷贝(

python中常用的模块二

一.序列化 指:在我们存储数据的时候,需要对我们的对象进行处理,把对象处理成方便存储和传输的数据格式,这个就是序列化, 不同的序列化结果不同,但目的是一样的,都是为了存储和传输. 一,pickle.可以将我们python中的任意数据类型转化成bytes并写入到文件中. 同样也可以把文件中写好的bytes转换回我们的python的数据.这个过程被称为序列化 import pickle class Cat: def __init__(self, name, age): self.name = nam

python中几大模块二

python中几大模块二 sys模块 sys模块也是python种一个非常强大的模块,功能非常的多,这里我其实也没接触到几个,暂时记录一下目前常用的几个功能函数. sys.argv 这个函数的功能是在程序外部向程序内部传递参数 .例如: import sys print(sys.argv[:]) print(sys.argv[0]) print(sys.argv[1]) print(sys.argv[2]) print(sys.argv[3]) #外部调用解释器执行该文件 python test

Python中time模块详解

在Python中,与时间处理有关的模块就包括:time,datetime以及calendar.这篇文章,主要讲解time模块. 在开始之前,首先要说明这几点: 在Python中,通常有这几种方式来表示时间:1)时间戳 2)格式化的时间字符串 3)元组(struct_time)共九个元素.由于Python的time模块实现主要调用C库,所以各个平台可能有所不同. UTC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间.在中国为UTC+8.DST

python编程常用模块记录

time(时间相关模块) logging(日志模块) [time 模块] 与时间有关还有datetime.calendar等 time模块常用于获取当前系统日期时间,该值可用于日志文件命名或者任何sleep函数让进程挂起. 常用用法: 一.现在需要知道当前时间,转换为字符串: #! /usr/bin/env python #coding=utf-8 import time print time.strftime('%Y-%m-%d %A %X %Z',time.localtime(time.ti

python中MySQLdb模块用法实例

篇文章主要介绍了python中MySQLdb模块用法,以实例形式详细讲述了MySQLdb模块针对MySQL数据库的各种常见操作方法,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了python中MySQLdb模块用法.分享给大家供大家参考.具体用法分析如下: MySQLdb其实有点像php或asp中连接数据库的一个模式了,只是MySQLdb是针对mysql连接了接口,我们可以在python中连接MySQLdb来实现数据的各种操作. python连接mysql的方案有oursql.PyMyS

Python中time模块详解(转)

Python中time模块详解(转) 在平常的代码中,我们常常需要与时间打交道.在Python中,与时间处理有关的模块就包括:time,datetime以及calendar.这篇文章,主要讲解time模块. 在开始之前,首先要说明这几点: 在Python中,通常有这几种方式来表示时间:1)时间戳 2)格式化的时间字符串 3)元组(struct_time)共九个元素.由于Python的time模块实现主要调用C库,所以各个平台可能有所不同. UTC(Coordinated Universal Ti

python中threading模块详解(一)

python中threading模块详解(一) 来源 http://blog.chinaunix.net/uid-27571599-id-3484048.html threading提供了一个比thread模块更高层的API来提供线程的并发性.这些线程并发运行并共享内存. 下面来看threading模块的具体用法: 一.Thread的使用 目标函数可以实例化一个Thread对象,每个Thread对象代表着一个线程,可以通过start()方法,开始运行. 这里对使用多线程并发,和不适用多线程并发做