第十节:xml、re、logging模块
2024-08-27 11:36: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
最新文章
- Genymotion模拟器连接Eclipse的总结[转]
- Linux下的Finger指令
- SQL Server中使用Check约束提升性能
- Eclipse 无线调试(利用ADB工具)
- 谈谈Delphi中的类和对象4---类是一种对数据和操作高度的封装机制 &;&; 类是一种代码重用机制
- sql 根据指定条件获取一个字段批量获取数据插入另外一张表字段中+MD5加密
- Source Tree for MAC1.6
- ViewPager 可左右滑动和缩放的图片浏览
- C++ 重载new和delete操作符
- 数据库获取前N条记录SQL Server与SQLite的区别
- Web移动端Fixed布局的解决方案
- c++的引用和c的指针之创建链表,二叉树的烦恼和区别
- 1049. Counting Ones (30)
- java 8 Lambda
- Android开发 - 掌握ConstraintLayout(十)按比例设置视图大小
- sklearn 的train_test_split
- 分段覆盖率TPR
- vue代码上传服务器后背景图片404解决方法
- 如何通过Fiddler模拟弱网进行测试
- plsql 快捷键配置