python——常用模块2

1 logging模块

1.1 函数式简单配置

  1. import logging
  2. logging.debug("debug message")
  3. logging.info("info message")
  4. logging.warning("warning message")
  5. logging.error("error message")
  6. logging.critical('critical message')

输出结果为:

  1. WARNING:root:warning message
  2. ERROR:root:error message
  3. CRITICAL:root:critical message

ps: 

logging.warning ("warning message") 为默认等级方式

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

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

  1. import logging
  2. logging.basicConfig(level=logging.DEBUG, #logging basicConfig()函数中可通过具体参数来更改logging模块默认行为
  3. format="%s(asctime)s [%s(lineno]s)%(message)s",
  4. datefmt="%Y-%m-%-d %H:%M:%S",
  5. filename="logger",
  6. filemode="a" #一般追加写
  7. )
  8. logging.debug("debug message")
  9. logging.info("info message")
  10. logging.warning("warning message")
  11. logging.error("error message")
  12. logging.critical("critical message")

配置参数:  

  1. logging.basicConfig()函数中可通过具体参数来更改logging模块默认行为,可有用参数有
  2. format:指定handler使用的日志显示格式
  3. datefmt:指定日期时间格式
  4. filename:指定的文件名创建FileHandler,这样日志会被存储在指定的文件中。
  5. filemode: 文件打开方式,在指定了filename时使用这个参数,默认值为“a”还可指定为“w
  6. level,设置rootlogger的日志级别
  7. stream:用指定的stream创建StreamHandler。可以指定输出到sys.stderrsys.stdout或者文件
  8. format参数中可能用到的格式化串:
  9. %(name)s Logger的名字
  10. %(levelno)s 数字形式的日志级别
  11. %(levelname)s 文本形式的日志级别
  12. %(pathname)s 调用日志输出函数的模块的完整路径名,可能没有
  13. %(filename)s 调用日志输出函数的模块的文件名
  14. %(module)s 调用日志输出函数的模块名
  15. %(funcName)s 调用日志输出函数的函数名
  16. %(lineno)d 调用日志输出函数的语句所在的代码行
  17. %(created)f 当前时间,用UNIX标准的表示时间的浮 点数表示
  18. %(relativeCreated)d 输出日志信息时的,自Logger创建以 来的毫秒数
  19. %(asctime)s 字符串形式的当前时间。默认格式是 2003-07-08 16:49:45,896”。逗号后面的是毫秒
  20. %(thread)d 线程ID。可能没有
  21. %(threadName)s 线程名。可能没有
  22. %(process)d 进程ID。可能没有
  23. %(message)s用户输出的消息

  

1.2 logger对象配置

  1. import logging
  2. logger=logging.getLogger()
  3. #创建一个handler,用于写入日志文件
  4. fh=logging.FileHandler("logger1")
  5.  
  6. #在创建一个handler,属于输出到控制台
  7. sh=logging.StreamHandler()
  8.  
  9. formatter=logging.Formatter("%s(asctime)s-%(levelname)s-%(message)s")
  10. fh.setFormatter(formatter)
  11. sh.setFormatter(formatter)
  12.  
  13. logger.addFilter(fh) #logger对象可以添加多个fh和sh对象
  14. logger.addFilter(sh)
  15.  
  16. logger.debug("logger debug message")
  17. logger.info("logger info message")
  18. logger.warning("logger warning message")
  19. logger.error("logger error message")
  20. 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)

  1. import json
  2. d={"name":"egon"}
  3. s=json.dumps(d) #将字典d转成json字符串---序列化的过程
  4. print(s)
  1. f=open("new","w")
  2. f.write(s)
  3. f.close()

反序列化(json.loads)

  1. f=open("new")
  2. data=f.read()
  3. data2=json.loads(data) #反序列化
  4. print(data2["name"])
  1. #dump方式 简化版
  2. f=open("new2","w")
  3. json.dump(d,f) #---1.转成json字符串 2.将json字符串写入文件里
  4. f.close()
  1. import json
  2. i=10
  3. s='hello'
  4. t=(1,4,6)
  5. l=[3,5,7]
  6. d={'name':"yuan"}
  7.  
  8. json_str1=json.dumps(i)
  9. json_str2=json.dumps(s)
  10. json_str3=json.dumps(t)
  11. json_str4=json.dumps(l)
  12. json_str5=json.dumps(d)
  13.  
  14. print(json_str1) #'10'
  15. print(json_str2) #'"hello"'
  16. print(json_str3) #'[1, 4, 6]'
  17. print(json_str4) #'[3, 5, 7]'
  18. 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的更多相关文章

  1. Python常用模块之sys

    Python常用模块之sys sys模块提供了一系列有关Python运行环境的变量和函数. 常见用法 sys.argv 可以用sys.argv获取当前正在执行的命令行参数的参数列表(list). 变量 ...

  2. Python常用模块中常用内置函数的具体介绍

    Python作为计算机语言中常用的语言,它具有十分强大的功能,但是你知道Python常用模块I的内置模块中常用内置函数都包括哪些具体的函数吗?以下的文章就是对Python常用模块I的内置模块的常用内置 ...

  3. python——常用模块

    python--常用模块 1 什么是模块: 模块就是py文件 2 import time #导入时间模块 在Python中,通常有这三种方式来表示时间:时间戳.元组(struct_time).格式化的 ...

  4. Python常用模块——目录

    Python常用模块学习 Python模块和包 Python常用模块time & datetime &random 模块 Python常用模块os & sys & sh ...

  5. python 常用模块之random,os,sys 模块

    python 常用模块random,os,sys 模块 python全栈开发OS模块,Random模块,sys模块 OS模块 os模块是与操作系统交互的一个接口,常见的函数以及用法见一下代码: #OS ...

  6. python常用模块之时间模块

    python常用模块之时间模块 python全栈开发时间模块 上次的博客link:http://futuretechx.com/python-collections/ 接着上次的继续学习: 时间模块 ...

  7. python常用模块之subprocess

    python常用模块之subprocess python2有个模块commands,执行命令的模块,在python3中已经废弃,使用subprocess模块来替代commands. 介绍一下:comm ...

  8. python常用模块之string

    python常用模块string模块,该模块可以帮我们获取字母.数字.特殊符号. import string #打印所有的小写字母 print(string.ascii_lowercase) #打印所 ...

  9. python常用模块-调用系统命令模块(subprocess)

    python常用模块-调用系统命令模块(subprocess) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. subproces基本上就是为了取代os.system和os.spaw ...

随机推荐

  1. nginx location匹配顺序及CI框架的nginx配置

    Nginx location匹配顺序如下: 用前缀字符串定义的location规则对URI进行匹配测试. =号定义了精确的前缀字符串匹配,如果发现精确匹配则使用当前规则.否则继续下一步匹配. 匹配其它 ...

  2. 使用html元素的getBoundingClientRect来获取dom元素的时时位置和大小

    使用: var section = $('.section'):这是jquery包装的dom元素,其他前端框架返回的可能也是一个包装元素, 我们需要获得的是里面的html的dom元素 然后:secti ...

  3. Vue解析五之mounted

    在mounted获得vue的实例要加 this.$nextTick(function () { // 代码保证 this.$el 在 document 中 }) mounted: function ( ...

  4. 用js编解码base64

    以下是编码和解码的方法 function Base64() { // private property _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef ...

  5. 升级 mysql5.6 配置文件my.cnf sql_mode 解析与设置问题

    sql_mode是个很容易被忽视的变量,默认值是空值,在这种设置下是可以允许一些非法操作的,比如允许一些非法数据的插入.在生产环境必须将这个值设置为严格模式,所以开发.测试环境的数据库也必须要设置,这 ...

  6. linux scp 命令

    scp 命令 scp 命令 意思是 secure copy 即安全拷贝,可以把它看做是 cp 命令的高级版,可以跨主机拷贝. 经常用来在局域网内不同主机之间分享文件,或者在本机与远程主机中分享文件. ...

  7. C语言第二周作业

    一.PTA实验作业 题目一:7-1 计算分段函数 1.实验代码 double x,y; scanf("%lf", &x); if(x >= 0){ y=pow(x,0 ...

  8. 项目Beta冲刺第一天

    1.昨天的困难,今天解决的进度,以及明天要做的事情 昨天的困难:企业自查风险模块仍旧存在部分问题,没有什么大的困难,主要是需求问题,企业人员什么条件之下可以添加风险点,第三方评估人员是否可以上报风险, ...

  9. python 操作PostgreSQL

    pip install psycopg Python psycopg2 模块APIs 以下是psycopg2的重要的的模块例程可以满足Python程序与PostgreSQL数据库的工作. S.N. A ...

  10. Tornado 网站demo 三

    模板 修改index.py #!/usr/bin/env Python # coding=utf-8 import tornado.web import methods.readdb as mrd c ...