第十节:xml、re、logging模块

时间:2024-12-20 12:33:44

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 取反
\b 匹配特殊字符空格$#等\\
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