python语法_模块_loggin_hashlib_conifgparser
loggin模块 日志模块,级别从上往下依次增强,debug 和 info 默认不输出信息,只有后三种级别有输出信息
loggin.debug('')
loggin.info('')
loggin.waring('')
loggin.error('')
loggin.critical('')
日志有两种形式,第一种显示在前台(标准流),第二种是记录在日志里。可调的。
日志的设置,灵活设定日志级别和打印方式:
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='myapp.log',
filemode='w')
logging.basicConfig函数各参数:
filename: 指定日志文件名
filemode: 和file函数意义相同,指定日志文件的打开模式,'w'或'a'
format: 指定输出的格式和内容,format可以输出很多有用信息,如上例所示:
%(levelno)s: 打印日志级别的数值
%(levelname)s: 打印日志级别名称
%(pathname)s: 打印当前执行程序的路径,其实就是sys.argv[0]
%(filename)s: 打印当前执行程序名
%(funcName)s: 打印日志的当前函数
%(lineno)d: 打印日志的当前行号
%(asctime)s: 打印日志的时间
%(thread)d: 打印线程ID
%(threadName)s: 打印线程名称
%(process)d: 打印进程ID
%(message)s: 打印日志信息
datefmt: 指定时间格式,同time.strftime()
level: 设置日志级别,默认为logging.WARNING
stream: 指定将日志的输出流,可以指定输出到sys.stderr,sys.stdout或者文件,默认输出到sys.stderr,当stream和filename同时指定时,stream被忽略
灵活定制日志输出模式:
logger = loggin.getLogger()
fh = loggin.FileHandler('test.log')
ch = loggin.StreamHandler()
formmater = loggin.Formmater()
fh.setFormmater(formmater )
ch.setFormmater(formmater )
logger.addhandler(fh)
logger.addhandler(ch)
logger.setLevel(logging.DEBUG) 设置日志打印的默认级别
logger.debug('')
logger.info('')
logger.waring('')
logger.error('')
logger.critical('')
#########
hashlib 模块,从明文加密成密文。
加密算法 md5,hash
m = hashlib.md5()
m.update('hello word'.encode('utf8')) 注意unicode 类型 一定要转换成byte类型
m.hexdigest() 获取m 通过md5转换后的字符串
m.update('alxe') 多次update 就相当将内容拼接起来进行转换,等价于 m.update('hello wordalxe')
另外一种算法
hashlib.sha 128 256 512
m = hashlib.sha256()
m.update('hello word'.encode('utf8'))
############
configparser 模块,配置文件模块
配置文件的定义和编写
config = configparser.ConfigParser()
config['DEFAULT'] = {'name':'gm','age':'11','sex':'man'}
config['bitbucket.org']={'user':'gh'}
config['topsecrt.net']={'port':'3306','type':'file'} #这三个config只是定义配置该怎么写,但是并没有写到文件中,需要调用文件操作以及config.write方法才能正式写进去。
with open('example.ini','w') as configfile
config.write(configfile)
修该配置文件
config = configparser.ConfigParser()
config.read(‘example.ini’) 先读取,再进行操作
print(config.sections()) 打印除掉default以外的所有sections name
print(config.defaults()) 打印default 下的信息。
asasa in config: 返回True,False 用来判断 配置是否存在配置文件中。
print(config['bitbucket.org']['user']) 打印配置大段的 具体配置的值
for key in config:
print(key) 这里打印的是 配置文件里大块名
for key in config['bitbucket.org']:
print(jkey) 打印包含default和 bitbucket.org 下的key
增删改
config.remove_sections() 删除快
config.has_sections('') 判断是否还包含快
config.set(‘sectionname’,'key','value') 修改快下的键值对
config.remove_options('serciontname','keyname')删除快下的键值对
config.write(open('i_cfg.ini','w')) 修改完后要写入文件
python语法_模块_loggin_hashlib_conifgparser的更多相关文章
- python语法_模块
方便调用的分组函数文件,一个py模块就是一个模块,模块分三类 python标准库 第三方模块 应程序自定义模块 模块的掉用: 可以把多个功能(函数)包含在一个模块文件里,调用时直接使用import 就 ...
- python语法_模块_os_sys
os模块:提供对此操作系统进行操作的接口 os.getcwd() 获取python运行的工作目录. os.chdir(r'C:\USERs') 修改当前工作目录. os.curdir 返回当前目录 ( ...
- python语法_模块_time_datetime_random
模块:可以被公共调用的. time import time print(time.time()) 时间戳方式显示时间. time.sleep(3) 休眠3秒 time.clock() 计算cpu执行时 ...
- python语法_模块_re(正则表达)
字符串操作方法有: s = 'hello word' s.find('l') 查询第一个l的索引 s.replace('ll','xx') 替换 s.split('w') 以w进行分割 这些都是完全匹 ...
- Python 进阶_模块 & 包
目录 目录 模块的搜索路径和路径搜索 搜索路径 命名空间和变量作用域的比较 变量名的查找覆盖 导入模块 import 语句 from-import 语句 扩展的 import 语句 as 自动载入模块 ...
- python语法_函数
---恢复内容开始--- 函数: 1 减少重复代码 2 定义一个功能,需要直接调用 3 保持代码一致性 def funcation_name(参数s): 功能代码块0 参数可以为多个,传入时按照前后 ...
- python语法_装饰器
装饰器的知识点储备: 1 作用域 2 高阶函数 3 闭包 内部函数,对外部作用作用域的变量进行了引用,该内部函数就认为是闭包, def outer(): x=10 def inner(): print ...
- python语法_文件操作
牢记“”“能调用方法的一定是对象”“” 文件的操作流程, 1 建立文件(打开文件)open('filename','模式').read() [这一步其实就是创建对象] 2 通过句柄进行操作 3 关闭o ...
- python语法_列表生成器_生成器_迭代器_异常捕获
列表生成式 a = [x for x in range(10)] print(a) x 可进行操作 a = [x*2 for x in range(10)] print(a) x甚至可以为函数, de ...
随机推荐
- JSSDK获取用户地理位置信息
复制一份JSSDK环境,创建一份index.html文件,结构如图7.1所示. 图7.1 7.1节文件结构 在location.js中,封装“getLocation”接口,如下: 01 wxJSS ...
- 以iphone作为热点时ios程序中的UDP广播地址
iPhone 开启热点后,会启用一个 172.20.10.0/28 的子网, 也就是最多15个ip地址,自己的地址是172.20.10.1, 广播地址是 172.20.10.15 ,不是传统的255. ...
- zigbee 信道
以zigbee nxp5169 信道是:11-26 15d0f1-170923 15 ----- 信道 d0f1--- 是zigbee 物理地址 170923---时间2017年9月 ...
- 网络流24题——骑士共存问题 luogu 3355
题目描述:这里 从这里开始,我们涉及到了一个新的问题:最小割问题 首先给出一些定义(本人根据定义自己口胡的): 一个流网络中的一个割是一个边集,使得割掉这些边集后源点与汇点不连通 而最小割问题就是一个 ...
- Jenkins编辑或替换All view
为什么我不能编辑“All”view? 这是因为它的类型是“All”而不是“List”,并且“All”类型是不可编辑的.你只能有一个“All”类型的view. 如果你想编辑这个View,你将不得不创建一 ...
- 记一次WordPress 安装的过程
安装WordPress你我他大家都会,记得10年的时候,哥已经玩转WordPress.dedecms.sns,那为何现在要记一次WordPress安装过程呢? 因为现在不会了! 之前安装都是在Wind ...
- kafka 客户端 producer 配置参数
属性 描述 类型 默认值 bootstrap.servers 用于建立与kafka集群的连接,这个list仅仅影响用于初始化的hosts,来发现全部的servers.格式:host1:port1,ho ...
- Schedule Problem spfa 差分约束
题意:有n个任务,给出完成n个任务所需时间,以及一些任务安排.任务安排有四种: FAS a b:任务a需在任务b开始后完成. FAF a b:任务a需在任务b完成后完成. SAF a b:任务a需在任 ...
- C语言的整型溢出问题 int、long、long long取值范围 最大最小值
类型名称 字节数 取值范围 signed char 1 -128-+127 short int 2 -32768-+32767 int 4 -2147483648-+2147483647 long i ...
- 逆向分析一款国外Blackjack Card Counter软件并附上License生成脚本
没有学过逆向,一时兴起,搞了一下这个小软件,名为“逆向分析”,其实过程非常简单,难登大雅之堂,就当段子看吧.首先介绍一下背景吧.这是一款国外的Blackjack也就是21点算牌软件,我从来不玩牌的,机 ...