Pyhton学习——Day23
#re模块方法:findall search
#findall:返回所有满足匹配条件的数值,放在列表里
#search : #函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回一个包含匹配信息的对象,该对象可以
# 通过调用group()方法得到匹配的字符串,如果字符串没有匹配,则返回None。
#match : 同search,不过仅在字符串开始出进行匹配
import re
# res = re.match('\d+','alex36wusir24')
# print(res)
# res = re.split('[ |]','hello abc|def')
# print(res)
# sub()用于替换匹配的字符串
# res = re.sub('\d','A','asdasdas1564agasd15a5sd4',4)
# print(res)
# compile替换指定的方法,自定义规则,可以使用多次
# finditer findall是放在列表,finditer返回的是一个迭代器对象,当处理数据非常大时,可以使用该命令处理
# res = re.findall('www\.(baidu|163)\.com','www.baidu.com')
# print(res)
#当findall匹配包含分组的过程,会优先打印匹配分组的内容
# F:\Python\PythonLeaning\venv\Scripts\python.exe F:/Python/PythonLeaning/每日学习打卡/Day23.py
# ['baidu']
#
# Process finished with exit code 0
############################################################################################################
# 正则表达式总结:
# 重点在字符集[]和转移字符\
# res = re.search('abc|bcd','bcd')
# print(res)
#search只能匹配到第一个
############################################################################################################
############################################################################################################
############################################################################################################
############################################################################################################
############################################################################################################
############################################################################################################
# logging模块:日志文件,提供了一个借口,调用方法完成对日志文件的操作
import logging
# logging.basicConfig( 文件的基本功能
# level=logging.DEBUG, 调整默认级别
# filename = 'logger.log' , 存至某一个文件
# filemode = 'w' , 只写文件
# format = '%(asctime)s' 设定日期格式
#
# )
# logging.debug('debug msg') debug、info、warning、error、critical日志级别,逐级升高,显示的内容需要通过级别来控制
# logging.info('info msg') 默认级别warning,比warning级别高的才能打印,可以调整参数
# logging.warning('warning msg')
# logging.error('error msg')
# logging.critical('critical msg')
# #_____________________________________________________________________________________________#
# F:\Python\PythonLeaning\venv\Scripts\python.exe F:/Python/PythonLeaning/每日学习打卡/Day23.py
# WARNING:root:warning msg
# ERROR:root:error msg
# CRITICAL:root:critical msg
# Process finished with exit code 0 # 可见,默认情况下Python的logging模块将日志打印到了标准输出中,且只显示了大于等于WARNING级别的日志,
# 这说明默认的日志级别设置为WARNING(日志级别等级CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET),
# 默认的日志格式为日志级别:Logger名称:用户输出消息。
# format参数中可能用到的格式化串:
# %(name)s Logger的名字
# [重要]%(levelno)s 数字形式的日志级别
# [重要]%(levelname)s 文本形式的日志级别
# %(pathname)s 调用日志输出函数的模块的完整路径名,可能没有
# %(filename)s 调用日志输出函数的模块的文件名
# %(module)s 调用日志输出函数的模块名
# %(funcName)s 调用日志输出函数的函数名
# %(lineno)d 调用日志输出函数的语句所在的代码行
# %(created)f 当前时间,用UNIX标准的表示时间的浮 点数表示
# %(relativeCreated)d 输出日志信息时的,自Logger创建以 来的毫秒数
# [重要]%(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
# %(thread)d 线程ID。可能没有
# %(threadName)s 线程名。可能没有
# %(process)d 进程ID。可能没有
# [重要]%(message)s用户输出的消息
#################################################################################################################
#logger对象 屏幕上显示,文件里也输入
# logger = logging.getLogger()
# fh = logging.FileHandler('test.log') #可以向文件里发送日志
# ch = logging.StreamHandler() #可以向屏幕里发送日志
# fm = logging.Formatter('%(asctime)s %(message)s')
# fh.setFormatter(fm)
# ch.setFormatter(fm)
# logger.addHandler(fh)
# logger.addHandler(ch)
# #logger具备同时发文件和屏幕信息
# logger.debug('hello')
# logger.info('asd')
# logger.warning('yes')
# logger.error('error')
# logger.critical('critical')
###############################################################################################################
# F:\Python\PythonLeaning\venv\Scripts\python.exe F:/Python/PythonLeaning/每日学习打卡/Day23.py
# 2018-02-26 10:57:32,644 yes
# 2018-02-26 10:57:32,645 error
# 2018-02-26 10:57:32,645 critical
# Process finished with exit code 0
###############################################################################################################
###############################################################################################################
###############################################################################################################
###############################################################################################################
###############################################################################################################
# configparser模块:主要用于操作配置文件,相当于操作一个大的字典文件
# import configparser
# config = configparser.ConfigParser()
# config["DEFAULT"] = {'ServerAliveInterval': '45',
# 'Compression': 'yes',
# 'CompressionLevel': '9'}
# config['bitbucket.org'] = {}
# config['bitbucket.org']['User'] = 'hg'
# config['topsecret.server.com'] = {}
# topsecret = config['topsecret.server.com']
# topsecret['Host Port'] = '50022' # mutates the parser
# topsecret['ForwardX11'] = 'no' # same here
# config['DEFAULT']['ForwardX11'] = 'yes'
# with open('example.ini', 'w') as configfile:
# config.write(configfile)
#——————————————————————————————————————————————————————#
#文件的增删改查
# import configparser
# config = configparser.ConfigParser()
# config.read('example.ini')
# print(config.sections()) #['bitbucket.org', 'topsecret.server.com']
# print(config['DEFAULT']['Compression'])#yes
# for key in config['bitbucket.org']:
# print(key)
#查——————————————————————————————————————————
#[DEFAULT]会随任意键打印而打印,是属于特殊的关键信息
# items是将键和值组成字典去取值
# get 是连续取值
#删、改、增——————————————————————————————————————
# config.write(open('i.cfg','w')) 一定要写
# config.add_section('yuan')#对文件增加一个块
###############################################################################################################
###############################################################################################################
###############################################################################################################
###############################################################################################################
###############################################################################################################
import hashlib
#用于加密的操作,MD5算法只能把明文变成密文,加密后位数是固定的
obj = hashlib.md5()
obj.update("hello".encode('utf-8'))
print(obj.hexdigest())
Pyhton学习——Day23的更多相关文章
- day23 Pyhton学习 昨日回顾.re模块.序列化模块
一.昨日回顾 #__file__查看当前文件所在的绝对路径 #time 时间模块 time.time 获取当前时间戳时间 字符串->time.strptime->结构化->mktim ...
- Pyhton学习——Day26
#多态:多态指的是一类事物有多种形态# import abc# class Animal(metaclass = abc.ABCMeta):# 同一类事物:动物# @abc.abstractclass ...
- pyhton 学习
官方学习文档 https://docs.python.org/3/tutorial/
- 20190320_head first pyhton学习笔记之构建发布
1.把代码nester.py放入文件夹nester中,在文件夹中再新建一个setup.py文件,文件内容如下: from distutils.core import setup setup( name ...
- python学习 day23 面向对象三大特性之继承
### 面向对象三大特性值继承#### 1.什么是继承 继承是一种关系,必须存在两个对象才可能产生这种关系,在现实生活中的继承,王思聪可以继承王健林的财产 被继承的成为父,继承的一方成为子 在程序中, ...
- Pyhton学习——Day2
Python开发IDE(工具)Pycharm.eclipse1.循环while 条件 #循环体 #条件为真则执行 #条件为假则执行break用于退出所有循环continue用于退出当前循环 2.Pyc ...
- Pyhton学习——Day28
#上下文协议:文件操作时使用with执行# with open('a.txt','w',encoding='utf-8') as f1:# with语句,为了让一个对象兼容with语句,必须在这个对象 ...
- Pyhton学习——Day27
# hasattr(obj,'name')-->obj.name# getattr(obj,'name',default = 'xxx')--->obj.name# setattr(obj ...
- Pyhton学习——Day25
#面向对象的几个方法#1.静态方法@staticmethod,不能访问类属性,也不能访问实例属性,只是类的工具包#2.类方法:@classmethod,在函数属性前加上类方法,显示为(cls)代表类, ...
随机推荐
- php 常用header
//定义编码 header( 'Content-Type:text/html;charset=utf-8 '); //Atom header('Content-type: application/at ...
- js操作url参数
function getQueStr(url, ref) //获取参数值 { var str = url.substr(url.indexOf('?') + 1); if (str.indexOf(' ...
- matplotlib 显示两张图片,折线图 和 scipy
显示两张图片的代码: import numpy as np from scipy.misc import imread, imsave, imresize import matplotlib.pypl ...
- CNN实现terecord、数据集、模型训练
AlexNet(Alex Krizhevsky,ILSVRC2012冠军)适合做图像分类.层自左向右.自上向下读取,关联层分为一组,高度.宽度减小,深度增加.深度增加减少网络计算量. 训练模型数据集 ...
- MySQL主要命令(2)
创建表 : create table if not exists employee( //格式:变量名 数据类型, id int, name varchar(30), sex varchar(2), ...
- 可序列化serializable的作用是什么
什么情况下需要序列化:a)当你想把的内存中的对象写入到硬盘的时候:b)当你想用套接字在网络上传送对象的时候: 为什么要序列化: 为了将对象可以以流的方式传输到其他位置,就必须要将该对象定义为可序列化的 ...
- yii 正则验证
required : 必须值验证属性 [['字段名'],required,'requiredValue'=>'必填值','message'=>'提示信息']; #说明:CRequiredV ...
- 洛谷 U3346 A1-偶回文数
U3346 A1-偶回文数 题目背景 方方方很喜欢回文数,于是zzq就出了一道关于回文数的题目. 因为偶回文数比较简单,所以方方方就把它放在了第一题... 题目描述 我们定义一个长度为偶数的回文数叫做 ...
- SQL从头開始
SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL) 查询和更新指令构成了 SQL 的 DML 部分: SELECT - 从数据库表中获取数据 UPDATE - 更新数据库表中 ...
- hdu5592/BestCoder Round #65 树状数组寻找第K大
ZYB's Premutation Memory Limit: 131072/131072 K (Java/Others) 问题描述 ZYBZYB有一个排列PP,但他只记得PP中每个前缀区间的逆 ...