• 日志,序列反序列和正则表达式


    1 logging模块

      logging模块有两个处理方式, 一个是直接使用logging处理, 另一个是生成一个对象,  用对象来处理

    1.1 处理方法一

      导入logging模块

      使用logging.basicConfig来设置配置信息

        参数level设置日志级别

        参数format可以设置一条日志信息的打印格式

        参数datefmt可以设置时间的显示格式

        参数filename可以设置将日志输出成文件的文件名字, 该文件指定之后控制台就不显示了

        参数filemode可以设置写入文件的写入模式

      写入日志信息的可以使用

        logging.日志级别(日志信息)

      其中日志界别的顺序是: debug < info < warning < error < critical

      使用代码如下

    import logging
    myFormat = '[ %(levelname)s : %(asctime)s ] %(pathname)s[ %(lineno)d ]  == > %(message)s'
    myDateFormat = '%Y-%m-%d %X'
    
    logging.basicConfig(level=logging.INFO, format=myFormat, datefmt=myDateFormat, filename='log', filemode='a')
    
    logging.debug('debug message')
    logging.info('info message')
    logging.warning('warning message')
    logging.error('error message')
    logging.critical('critical message')
    

    1.2 处理方法二

      获取logging对象

        logging.getLogger()

        可以指定名字, 默认为root

      设置文件或者屏幕输出对象

        logging.FileHandler(文件名字, mode=读写模式, encoding=编码, delay=布尔值)

        logging.StreamHandler()

      设置日志等级

        logging对象.setLevel(等级)

      设置打印格式

        FileHandler对象.setFormatter(格式)

        StreamHandler对象.setFormatter(格式)

      绑定Handler对象给logging对象

        logging对象.addHandler( 文件或者流Handler对象 )

      具体使用方法

    import logging
    
    log = logging.getLogger()
    
    fh = logging.FileHandler('log2')
    sh = logging.StreamHandler()
    
    log.setLevel(logging.DEBUG)
    
    myFormat = '[ %(levelname)s : %(asctime)s ] %(pathname)s[ %(lineno)d ]  == > %(message)s'
    formatter = logging.Formatter(myFormat)
    fh.setFormatter(formatter)
    sh.setFormatter(formatter)
    
    log.addHandler(fh)
    log.addHandler(sh)
    
    logging.debug('debug message')
    

    2 json模块

      可以通过json模块来讲数据转化为json格式数据, 并且存储

      还可以直接读取文件并将高json内容转化为对应的python格式数据

      将数据转为json字符串

        json.dumps(需要转的数据)

      将json数据转化为对象的Python数据

        json.loads( json字符串 )

      其中对应的有dunp()和load()方法, 这俩有两参数, 用于直接打开文件句柄来读或者写

      具体是用实例如下

    import json
    
    dic={'name':'whc','age':23,'sex':'male'}
    
    data=json.dumps(dic)
    # '{"name": "whc", "age": 23, "sex": "male"}'
    
    f=open('json','w')
    f.write(data)
    f.close()
    
    f=open('json')
    new_data=json.loads(f.read())
    # {'name': 'whc', 'age': 23, 'sex': 'male'}
    

      使用dunp或者load方法的处理如下

    import json
    
    dic={'name':'whc','age':23,'sex':'male'}
    
    json.dump(dic, open('json',"w"))
    newData = json.load(open('json'))
    # {'name': 'whc', 'age': 23, 'sex': 'male'}
    

    3 正则表达式

      正则表达式参见全面的解析    

      我的总结

     

    人若有恒 无所不成
  • 相关阅读:
    浙江大华2012笔试题+答案解析
    腾讯2011年10月15日校招笔试+答案解析
    百度2011招聘笔试题+答案解析
    阿里巴巴2011笔试题+答案解析
    微软2012实习生笔试题+答案解析
    腾讯2012实习生笔试题+答案解析
    迅雷2012春招+答案解析
    华为2012春上机笔试题+参考程序
    中兴2011笔试题+答案解析
    mysql修改数据库名
  • 原文地址:https://www.cnblogs.com/weihuchao/p/6773197.html
Copyright © 2020-2023  润新知