zoukankan      html  css  js  c++  java
  • 第 1~8 天复习

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    import collections
    1、#统计
    c = collections.Counter("sdqrefwwwewrc")
    print(c) #Counter({'w': 4, 'e': 2, 'r': 2, 'f': 1, 'c': 1, 'q': 1, 's': 1, 'd': 1})
    2、#有序字典
    dic = collections.OrderedDict()
    dic['k']='v'
    dic['k1']='v1'
    dic['k2']='v2'
    dic['k4']= 'v4'
    print(dic) #OrderedDict([('k', 'v'), ('k1', 'v1'), ('k2', 'v2'), ('k4', 'v4')])
    3、#把k1移到最后
    dic.move_to_end('k1')
    print(dic) #OrderedDict([('k', 'v'), ('k2', 'v2'), ('k4', 'v4'), ('k1', 'v1')])

    4、#更新字典
    dic.update({"k5":'zha'})
    print(dic) #OrderedDict([('k', 'v'), ('k2', 'v2'), ('k4', 'v4'), ('k1', 'v1'), ('k5', 'zha')])
    from collections import defaultdict
    values = [11, 22, 33,44,55,66,77,88,99,90]
    my_dict = defaultdict(list)
    print(type(my_dict))
    <class 'collections.defaultdict'>

    print(my_dict)
    defaultdict(<class 'list'>, {})

    for value in values:
    if value>66:
    my_dict['k1'].append(value)
    else:
    my_dict['k2'].append(value)

    print(my_dict.values())
    dict_values([[77, 88, 99, 90], [11, 22, 33, 44, 55, 66]])

    for i in my_dict.values():
    print(i)

    [77, 88, 99, 90]
    [11, 22, 33, 44, 55, 66]

    模块:subprocess (2.7)

    >>> a = subprocess.Popen("df -h",shell=True,stdout=subprocess.PIPE)

    >>> a.stdout.read() #获取命令执行结果
    b'Filesystem Size Used Avail Use% Mounted on /dev/sda2 17G 5.1G 11G 32% / tmpfs 935M 72K 935M 1% /dev/shm /dev/sda1 146M 30M 109M 22% /boot /dev/sdb 1008M 34M 924M 4% /quo '
    >>>

    日志模块之模块:logging的使用:

    logging.basicConfig(filename='log.log',
    format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',
    datefmt='%Y-%m-%d %H:%M:%S %p',
    level=20) #level=20 表示日志级别(10调式、20输出信息、30警告信息、40错误信息、50严重错误信息)
    当level=20的时候,表示只记录大于20的日志级别,小于该级别的不做记录!
    logging.debug('debug')
    logging.info('info')
    logging.warning('warning')
    logging.error('error')
    logging.critical('critical')

    CRITICAL = 50

    FATAL = CRITICAL
    ERROR = 40
    WARNING = 30
    WARN = WARNING
    INFO = 20
    DEBUG = 10
    NOTSET = 0

     日志模块之:同时把日志输入到屏幕和文件中:

    import logging
    logger = logging.getLogger("TEST-LOG")
    logger.setLevel(level=10)
    #创建屏幕输出对象
    ch = logging.StreamHandler()
    ch.setLevel(level=10) #把屏幕输出的信息级别设置问10 debug级别
    #创建日志文件和设置日志级别
    fh = logging.FileHandler("acces.log")
    fh.setLevel(level=10) #把输入文件的信息设置为10 debug级别
    #创建日志格式
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',datefmt='%Y-%m-%d %H:%M:%S %p',)
    #格式输出日志
    ch.setFormatter(formatter) #设置的屏幕输出日志
    fh.setFormatter(formatter) #设置的文件输出日志
    #启用自定义的文件日志格式
    logger.addHandler(fh)#把日志信息输出到文件中
    logger.addHandler(ch)#把日志信息输出到控制台显示!
    logger.debug('debug')
    logger.info('info')
    logger.warning('warning')
    logger.error('error')
    logger.critical('critical')

    控制台和日志文件输出信息:

    2016-03-25 15:55:09 PM - TEST-LOG - DEBUG -logging_module: debug
    2016-03-25 15:55:09 PM - TEST-LOG - INFO -logging_module: info
    2016-03-25 15:55:09 PM - TEST-LOG - WARNING -logging_module: warning
    2016-03-25 15:55:09 PM - TEST-LOG - ERROR -logging_module: error
    2016-03-25 15:55:09 PM - TEST-LOG - CRITICAL -logging_module: critical





  • 相关阅读:
    RecyclerView,ListView first item get focus
    一种粗暴快速的Android全屏幕适配方案(转)
    谈谈单元测试之(一):为什么要进行烦人的单元测试(转)
    SCIgen与野鸡期刊的梗
    百度搜索仍然是【最快解决工作问题的方法】
    搭建minima主题的github博客网站
    本科期间的第一个专利:改卷筒的故事
    学习消费思维的【贫穷与富有】
    我的联系方式
    学习 GitHub 有什么好处?
  • 原文地址:https://www.cnblogs.com/zhang252709/p/5310778.html
Copyright © 2011-2022 走看看