您的位置:首页 > 编程语言 > Python开发

2.26 学python logging模块补充 configParser模块 re正则表达式

2018-02-27 11:09 489 查看
1.logging 模块的第二种使用

import logging
mylogger= logging.getLogger()
#创建一个Handler 用于写入日志文件
fh=logging.FileHandler('yanga11ang.log')
#创建一个handle 用于输出到控制台
ch=logging.StreamHandle()
formatter= logging.Formatter('%(asctime)s - %(name)s -%(levelname)s - %(message)s')
fh.setFormatter(formatter)
ch.setFormatter(formatter)
mylogger.addHandler(fh)
mylogger.addHandler(ch) #添加输出方式
mylogger.info('logger info msg')


2.configParser

#生成配置文档 有序字典
#创建
import configparser
config= configparser.ConfigParser()

config['DEFAULT']={'ServerAliveInterval':,
'Compression':'yes'}
config['yanga11ang']={}

with open('yanga11ang.ini','w') as configfile:
config.write(configfile)
#读取
import configparser
config= configparser.ConfigParser()
config.read('yanga11ang.ini')
config.sections() #没有default 里面的
config.defaults()
config.remove_section('yanga11ang')

for key in config:
print(key)

for key in config['yanga11ang']:
print(key)  # default 里面的也会被打印出来
#删除
import configparser
config= configparser.ConfigParser()
config.read('yanga11ang.ini')
config.remove_section('yanga11ang')
config.has_section('yanga11ang')
config.set('yanga11ang','123',123)
config.write(open('yanga11ang.ini','w'))


3.re

#正则表达式 用来模糊匹配字符串的
'''
普通字符
元字符:. ^ $ * + ? {} [] | () \
. 通配符:  匹配任意一个字符(不能匹配换行符)
^ 尖角符: 匹配开始
$ 美元符:  匹配结尾
* :  重复前面的一个符号任意多次[0,+oo) 贪婪匹配
+ :  重复前面的一个符号至少一次[1,+oo) 贪婪匹配
? :  重复前面的一个符号零次或一次        贪婪匹配
{}:  重复前面的一个符号指定次  'a{3}' 'a{2,5}' 贪婪匹配
[]字符集:  匹配其中任意一个 '[qer]' '[-a]' '[.]'取消元字符的特殊功能,
^ [^tb]  匹配除了tb以外的字符
- [a-z] 匹配a到z的元素
\ [\n]  匹配那些特殊的字符 如换行制表等
\ 反斜杠:
反斜杠后跟元字符去除特殊功能
反斜杠后跟普通字符实现特殊功能
\d 匹配任何十进制数 相当于[0-9]
\D 匹配任何非十进制数 相当于[^0-9]
\s 匹配任何空字符   相当于[\t\n\r\f\v]
\S 匹配任何非空字符 相当于[^ \t\n\r\f\v]
\w 匹配任何字母或数字 相当于[a-zA-Z0-9]
\W 匹配任何非字母或数字 相当于[^a-zA-Z0-9]
\b 匹配一个单词边界,也就是指单词和空格之间的位置 re.findall(r'I\b','I am yanga11ang')
():  分组 '(as)+' as作为整体重复
| :  或者 '(as)|+'匹配as 或 + 短路原则

'''
import re
#贪婪匹配所有的
re.findall(pattern,string)
ret=re.findall(r'w\w{2}l','hello world')
#只匹配一个 返回一个对象#只匹配一个 返回一个对象
ret=re.search(r'w\w{2}l','hello world')
ret.group()  #匹配结果
ret=re.search(r'(?P<id>\d{2})','www.yanga11ang.com') #(?P<id>) 命名格式,
ret.group('id')  #匹配结果 11
#在字符串开始匹配
ret=re.match(r'w\w{2}l','hello world')
ret.group()  #匹配结果
#分割 先通过第一个分开,在同功第二个分开
re.split('[sd]','iasaswerd')
#替换
re.sub(pattern,change,string)
#编译一个正则对象
obj=re.compile('\.com')
obj.findall(string)
obj.search(string)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: