zoukankan      html  css  js  c++  java
  • 第十节:xml、re、logging模块

    XML模块:(用到的时候再看)
    tree=xml.parse('xmltest.xml')
    root= tree.getroot()
    print(root.tag) 打印对象的标签
    root.attrib 获取对象的属性
    root.text 获取对象的文本内容

    RE模块:
    re.findall("匹配条件","需要匹配的数据")
    . 匹配单个仍以字符
    ? 0个或者1个前面的字符
    * 匹配任意个前面的字符包含0个(shell中的正则和python中的正则有区别)
    + 匹配至少一个前面的字符
    {2} 匹配6次前面的字符
    ^ 以前面的字符开头
    $ 以前面的字符结尾
    [] 匹配[]中的一个字符 里面加^代表取反 - ^ 有特殊意义,其他符号都当成字符
    能让有意义的变得没意义,没意义的变得有意义
    d 数字
    D 非数字
    s 空格
    S 非空格
    w 字符和数字组成的字符
    W 取反
     匹配特殊字符空格$#等\
    print(re.findall("as*?","asdfdfaa"))最小平匹配,有点难理解,所体会下试下就知道了
    print(re.search("(?P<name>[a-z]+)",'assdsds').group('name'))分组匹配打印分组内容

    logging模块:
    日志级别

    # 4、日志级别
    # critical => 50
    # error => 40
    # warning => 30
    # info => 20
    # debug => 10
    import  logging
    loger=logging.getLogger("test")
    loger.setLevel(logging.DEBUG)  #loger.setLevel(10)设置全局最低的日志级别
    form = logging.Formatter('%(asctime)s-%(name)s-%(levelname)s-%(message)s') #设置日志格式
    
    fh=logging.FileHandler('test.log')  #将日志输出到文件中
    ch=logging.StreamHandler()       #将日志打印到屏幕
    
    fh.setFormatter(form)          #定义输出到文件中的日志格式
    ch.setFormatter(form)          #定义输出到屏幕的日志格式
    
    loger.addHandler(fh)          #将handler添加给logger,下同
    loger.addHandler(ch)
    
    loger.debug("debug")          #打印日志,下同
    loger.info("info")

    2020-04-16 00:36:54,577-test-DEBUG-debug
    2020-04-16 00:36:54,577-test-INFO-info

  • 相关阅读:
    What is systemvolumeinformation? delete it?
    What is "found.000" ? How to deal with it?
    install Mac OS on Vmware
    字符串数组全排列
    Hadoop开发相关问题
    String直接赋值和使用new的区别
    输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的
    括号匹配问题
    预编译语句
    两个有序单链表合并成一个有序单链表的java实现
  • 原文地址:https://www.cnblogs.com/sxdpython/p/12683367.html
Copyright © 2011-2022 走看看