第 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





原文地址:https://www.cnblogs.com/zhang252709/p/5310778.html