python:常用模块二

Posted kakawith

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python:常用模块二相关的知识,希望对你有一定的参考价值。

1,hashlib模块---摘要算法

技术分享图片
import hashlib
 
md5 = hashlib.md5()
md5.update(how to use md5 in python hashlib?)
print md5.hexdigest()

计算结果如下:
d26a53750bc40b38b65a520292f69306
用MD5进行加密

如果数据量很大,可以分块多次调用update(),最后计算的结果是一样的:

md5 = hashlib.md5()
md5.update(how to use md5 in )
md5.update(python hashlib?)
print md5.hexdigest()

MD5是最常见的摘要算法,速度很快,生成结果是固定的128 bit字节,通常用一个32位的16进制字符串表示。另一种常见的摘要算法是SHA1,调用SHA1和调用MD5完全类似:

import hashlib
 
sha1 = hashlib.sha1()
sha1.update(how to use sha1 in )
sha1.update(python hashlib?)
print sha1.hexdigest()

SHA1的结果是160 bit字节,通常用一个40位的16进制字符串表示。比SHA1更安全的算法是SHA256和SHA512,不过越安全的算法越慢,而且摘要长度更长。

2,configparser模块

该模块适用于配置文件的格式与windows ini文件类似,可以包含一个或多个节(section),每个节可以有多个参数(键=值)。

创建文件

来看一个好多软件的常见文档格式如下:

[DEFAULT]
ServerAliveInterval = 45
Compression = yes
CompressionLevel = 9
ForwardX11 = yes
  
[bitbucket.org]
User = hg
  
[topsecret.server.com]
Port = 50022
ForwardX11 = no

如果想用python生成一个这样的文档怎么做呢?

import configparser
config =configparser.ConfigParser()
config["DEFAULT"] = {ServerAliveInterval: 45,
                      Compression: yes,
                     CompressionLevel: 9,
                     ForwardX11:yes
                     }

config[bitbucket.org] = {User:hg}

config[topsecret.server.com] = {Host Port:50022,ForwardX11:no}

with open(example.ini, w) as configfile:

   config.write(configfile)

查找文件

import configparser

config = configparser.ConfigParser()

#---------------------------查找文件内容,基于字典的形式

print(config.sections())        #  []

config.read(example.ini)

print(config.sections())        #   [‘bitbucket.org‘, ‘topsecret.server.com‘]

print(bytebong.com in config) # False
print(bitbucket.org in config) # True


print(config[bitbucket.org]["user"])  # hg

print(config[DEFAULT][Compression]) #yes

print(config[topsecret.server.com][ForwardX11])  #no


print(config[bitbucket.org])          #<Section: bitbucket.org>

for key in config[bitbucket.org]:     # 注意,有default会默认default的键
    print(key)

print(config.options(bitbucket.org))  # 同for循环,找到‘bitbucket.org‘下所有键

print(config.items(bitbucket.org))    #找到‘bitbucket.org‘下所有键值对

print(config.get(bitbucket.org,compression)) # yes       get方法Section下的key对应的value

增删改操作

import configparser

config = configparser.ConfigParser()

config.read(example.ini)

config.add_section(yuan)



config.remove_section(bitbucket.org)
config.remove_option(topsecret.server.com,"forwardx11")


config.set(topsecret.server.com,k1,11111)
config.set(yuan,k2,22222)

config.write(open(new2.ini, "w"))

logging模块

函数式简单配置

import logging  
logging.debug(debug message)  
logging.info(info message)  
logging.warning(warning message)  
logging.error(error message)  
logging.critical(critical message) 

默认情况下Python的logging模块将日志打印到了标准输出中,且只显示了大于等于WARNING级别的日志,这说明默认的日志级别设置为WARNING(日志级别等级CRITICAL > ERROR > WARNING > INFO > DEBUG),默认的日志格式为日志级别:Logger名称:用户输出消息。

灵活配置日志级别,日志格式,输出位置:

import logging  
logging.basicConfig(level=logging.DEBUG,  
                    format=%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s,  
                    datefmt=%a, %d %b %Y %H:%M:%S,  
                    filename=/tmp/test.log,  
                    filemode=w)  
  
logging.debug(debug message)  
logging.info(info message)  
logging.warning(warning message)  
logging.error(error message)  
logging.critical(critical message)

配置参数:

技术分享图片
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用户输出的消息
View Code

logger对象配置

import logging

logger = logging.getLogger()
# 创建一个handler,用于写入日志文件
fh = logging.FileHandler(test.log,encoding=utf-8) 

# 再创建一个handler,用于输出到控制台 
ch = logging.StreamHandler() 
formatter = logging.Formatter(%(asctime)s - %(name)s - %(levelname)s - %(message)s)

fh.setLevel(logging.DEBUG)

fh.setFormatter(formatter) 
ch.setFormatter(formatter) 
logger.addHandler(fh) #logger对象可以添加多个fh和ch对象 
logger.addHandler(ch) 

logger.debug(logger debug message) 
logger.info(logger info message) 
logger.warning(logger warning message) 
logger.error(logger error message) 
logger.critical(logger critical message)

 

以上是关于python:常用模块二的主要内容,如果未能解决你的问题,请参考以下文章

Python 常用模块学习

Python爬虫 网页图片

python的random模块(生成验证码)

python常用模块之random模块

python常用模块之random

python ranndom模块及生成验证码