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

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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值