python——常用模块2
python——常用模块2
1 logging模块
1.1 函数式简单配置
- import logging
- logging.debug("debug message")
- logging.info("info message")
- logging.warning("warning message")
- logging.error("error message")
- logging.critical('critical message')
输出结果为:
- WARNING:root:warning message
- ERROR:root:error message
- CRITICAL:root:critical message
ps:
logging.warning ("warning message") 为默认等级方式
可见,默认情况下Python的logging模块将日志打印到了标准输出中,且只显示了大于等于WARNING级别的日志,这说明默认的日志级别设置为WARNING(日志级别等级CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET),默认的日志格式为日志级别:Logger名称:用户输出消息。
灵活配置日志级别,日志格式,输出位置:
- import logging
- logging.basicConfig(level=logging.DEBUG, #logging basicConfig()函数中可通过具体参数来更改logging模块默认行为
- format="%s(asctime)s [%s(lineno]s)%(message)s",
- datefmt="%Y-%m-%-d %H:%M:%S",
- filename="logger",
- filemode="a" #一般追加写
- )
- logging.debug("debug message")
- logging.info("info message")
- logging.warning("warning message")
- logging.error("error message")
- logging.critical("critical message")
配置参数:
- logging.basicConfig()函数中可通过具体参数来更改logging模块默认行为,可有用参数有
- format:指定handler使用的日志显示格式
- datefmt:指定日期时间格式
- filename:指定的文件名创建FileHandler,这样日志会被存储在指定的文件中。
- filemode: 文件打开方式,在指定了filename时使用这个参数,默认值为“a”还可指定为“w”
- level,设置rootlogger的日志级别
- stream:用指定的stream创建StreamHandler。可以指定输出到sys.stderr,sys.stdout或者文件
- 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用户输出的消息
1.2 logger对象配置
- import logging
- logger=logging.getLogger()
- #创建一个handler,用于写入日志文件
- fh=logging.FileHandler("logger1")
- #在创建一个handler,属于输出到控制台
- sh=logging.StreamHandler()
- formatter=logging.Formatter("%s(asctime)s-%(levelname)s-%(message)s")
- fh.setFormatter(formatter)
- sh.setFormatter(formatter)
- logger.addFilter(fh) #logger对象可以添加多个fh和sh对象
- logger.addFilter(sh)
- 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")
logging库提供了多个组件:Logger、Handler、Filter、Formatter。Logger对象提供应用程序可直接使用的接口,Handler发送日志到适当的目的地,Filter提供了过滤日志信息的方法,Formatter指定日志显示格式。另外,可以通过:logger.setLevel(logging.Debug)设置级别。
2 序列化模块
json: JSON表示出来就是一个字符串,可以被所有语言读取,也可以方便地存储到磁盘或者通过网络传输。
JSON表示的对象就是标准的JavaScript语言的对象一个子集,JSON和Python内置的数据类型对应如下:
序列化(json.dumps)
- import json
- d={"name":"egon"}
- s=json.dumps(d) #将字典d转成json字符串---序列化的过程
- print(s)
- f=open("new","w")
- f.write(s)
- f.close()
反序列化(json.loads)
- f=open("new")
- data=f.read()
- data2=json.loads(data) #反序列化
- print(data2["name"])
- #dump方式 简化版
- f=open("new2","w")
- json.dump(d,f) #---1.转成json字符串 2.将json字符串写入文件里
- f.close()
- import json
- i=10
- s='hello'
- t=(1,4,6)
- l=[3,5,7]
- d={'name':"yuan"}
- json_str1=json.dumps(i)
- json_str2=json.dumps(s)
- json_str3=json.dumps(t)
- json_str4=json.dumps(l)
- json_str5=json.dumps(d)
- print(json_str1) #'10'
- print(json_str2) #'"hello"'
- print(json_str3) #'[1, 4, 6]'
- print(json_str4) #'[3, 5, 7]'
- print(json_str5) #'{"name": "yuan"}'
json的dumps,loads,dump,load功能总结:
json.dumps(x) 把python的(x)原对象转换成json字符串的对象,主要用来写入文件。
json.loads(f) 把json字符串(f)对象转换成python原对象,主要用来读取文件和json字符串
json.dump(x,f) 把python的(x)原对象,f是文件对象,写入到f文件里面,主要用来写入文件的
json.load(file) 把json字符串的文件对象,转换成python的原对象,只是读文件
python——常用模块2的更多相关文章
- Python常用模块之sys
Python常用模块之sys sys模块提供了一系列有关Python运行环境的变量和函数. 常见用法 sys.argv 可以用sys.argv获取当前正在执行的命令行参数的参数列表(list). 变量 ...
- Python常用模块中常用内置函数的具体介绍
Python作为计算机语言中常用的语言,它具有十分强大的功能,但是你知道Python常用模块I的内置模块中常用内置函数都包括哪些具体的函数吗?以下的文章就是对Python常用模块I的内置模块的常用内置 ...
- python——常用模块
python--常用模块 1 什么是模块: 模块就是py文件 2 import time #导入时间模块 在Python中,通常有这三种方式来表示时间:时间戳.元组(struct_time).格式化的 ...
- Python常用模块——目录
Python常用模块学习 Python模块和包 Python常用模块time & datetime &random 模块 Python常用模块os & sys & sh ...
- python 常用模块之random,os,sys 模块
python 常用模块random,os,sys 模块 python全栈开发OS模块,Random模块,sys模块 OS模块 os模块是与操作系统交互的一个接口,常见的函数以及用法见一下代码: #OS ...
- python常用模块之时间模块
python常用模块之时间模块 python全栈开发时间模块 上次的博客link:http://futuretechx.com/python-collections/ 接着上次的继续学习: 时间模块 ...
- python常用模块之subprocess
python常用模块之subprocess python2有个模块commands,执行命令的模块,在python3中已经废弃,使用subprocess模块来替代commands. 介绍一下:comm ...
- python常用模块之string
python常用模块string模块,该模块可以帮我们获取字母.数字.特殊符号. import string #打印所有的小写字母 print(string.ascii_lowercase) #打印所 ...
- python常用模块-调用系统命令模块(subprocess)
python常用模块-调用系统命令模块(subprocess) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. subproces基本上就是为了取代os.system和os.spaw ...
随机推荐
- unable to apply changes:plugins "App links assistant",firebase services won'
新安装的android studio工具报错,本来以为只要在plugins中安装android support插件的,现在点击该插件还是不能apply,提示: unable to apply chan ...
- 请详细描述(以硬盘启动)Linux系统从打开主机电源到进入登录界面整个过程的流程。
1. 开机进行BIOS(BIOS(Basic Input / Output System)自检测系统外围硬件设备如CPU.内存.IO.显卡.鼠标键盘等.根据BIOS中设置的系统启动顺序搜索用于启动系统 ...
- js对象系列【一】深层理解对象与原型
我们先从盘古开天辟地时捋一捋对象: 从宏观内容来讲,javascript是一个属性的集合,包括值,函数,而整个集合也可以类比为一个对象. js = { a的变量名: a的值, ... 函数b: fun ...
- nginx+lua 根据指定路径反向代理
location /imgproxytest{ if ($uri ~ ".*\.(jpg|png|jpeg|bmp|gif|swf|css)$"){ rewrite_by_lua ...
- 继续吐槽在net下没有合适的Disk Cache之使用EhCache
说起缓存,大家可能口若悬河,各种类型的缓存都能一一分析,但在net下找到一款合适的Disk Cache貌似还是有一点难度的. 一:背景 事情是这样的,最近的一个项目中,需要在web端绘制一些报表,因为 ...
- elementUI-事件绑定Bug
刚开始使用elementUI的,慢慢的摸索.今天在绑定click事件的时候,在给el-某标签绑定.然后事件失效了.我就很纳闷,这怎么可能失效呢,当我给它的自己元素嵌套了一层div的时候,仍可是使用所以 ...
- linux --> fork()详解
fork()详解 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个 ...
- Matlab绘图基础——散点生成三角网(TIN)
%例一:二维三角网TIN模型的生成 X=rand(10,2)*5; dt=DelaunayTri(X(:,1),X(:,2)); %生成三角网 triplot(dt);hold on; ...
- sqlite的limit使用
如果我要取11-20的Account表的数据,则为: Select * From Person Limit 9 Offset 10;表示从Person 表获取数据,跳过10行,取9行 .也可以这样 ...
- Sagit.Framework For IOS 开发框架入门教程6:网络请求STHttp
前言: IOS的文章,今天,再来补一篇,Sagit的教程: 虽然感觉IOS的文章没什么观众,还是努力写吧,-_-〜 Sagit 开源地址:https://github.com/cyq1162/Sagi ...