学习笔记(六)模块、包、正则表达式
来源:互联网 发布:万能网络摄像头软件 编辑:程序博客网 时间:2024/05/23 14:52
1.定义
模块:用来从逻辑上组织python代码,本质就是.py结尾的python文件。
包:用来从逻辑上组织模块的,本质就是一个目录(必须带有init.py文件)__int.py用于标识当前文件夹是一个包。
2.import本质
导入模块的本质就是把python文件解释一遍
import modelName->modelName.py->modelName.py的路径->sys.path
导入包的本质就是执行该包下的init.py文件
3.内置模块
(1).time和datetime
a.时间戳(timestamp)
b.格式化时间字符串
c.元祖(struct_time)
a->c:gmtime(结果为UTC时区) localtime(UTC+8时区)
c->a:mktime
c->b:strftime(format,time_tuple)
b->c:strptime(string,format)
(2).random
random.randint(x,y)#随机产生[x,y]之间的数 random.randrange(x,y)#随机产生[x,y)之间 random.choice()#从(列表or字符串or元祖)中随机抽取一个 random.sample('str',n)#从str中随机抽取n个字符 random.random()#随机浮点数 random.uniform(x,y)#随机产生x,y中间的浮点数
(3).sys
sys.argv #命令行参数list,第一个元素是程序本身路径 sys.exit(0)#退出 sys.maxint #最大的int值 sys.path#返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform #返回操作系统平台名称
(4).shutil#文件的copy、压缩包
shutil.copyfileobj(src,dst.length) shutil.copyfile(src,dst)#拷贝文件 shutil.copymode(src,dst)#仅拷贝权限。内容、组、用户均不变 shutil.copystat(src,dst)#拷贝状态的信息 shutil.copy(src,dst)#拷贝文件和权限 shutil.copy2(src,dst)#拷贝文件和状态信息 shutil.copytree(src,dst,symlinks=False,ignore=Nono)#递归的去拷贝文件 shutil.rmtree(file)#递归删除文件 shutil.move(src,dst)#递归的移动文件 shutil.make_archive(base_name,format,...)#base_name(文件名)、fromat(压缩包种类)主要是调用ZipFile和TarFile
(5).hashlib#用于加密相关的操作
import hashlib m=hashlib.md5() m.update(b"Hello") print(m.hexdigest()) m=hashlib.sha1() m.update(b"Hello") print(m.hexdigest()) import hmac m=hmac.new(b"Hello","It`s me".encode(encoding="utf-8")) print(m.hexdigest()) print(m.digest())
(6).json和pickle
json#把数据进行序列化,python在内存中的数据类型不能直接写到文件(只存字符串 OR bytes)中去,必须转成(dump)字符串且数据不发生损坏。
#解决不同平台不同语言之间的数据交换
pickle#用于python特有的类型和python的数据类型间进行转换 import shelve shelve模块是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式
4.正则表达式
''''.' 默认匹配除\n之外的任意一个字符,若指定falg dotall,则匹配任意字符,包括换行'^' 匹配字符串的开始位置。若设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。'?' 匹配?号前面的字符一次或0次~{0,1}'+' 代表匹配前一个字符一次或多次'$' 匹配输入字符串的结束位置'*' 匹配*号前的字符,0次或多次'\A' 只从字符开头开始匹配,\A[0-9]'\Z' 匹配字符结尾,[a-z]\Z'\d' 匹配0-9'\D' 匹配非数字'\w' 匹配[A-Z,a-z,0-9]'\W' 匹配非[A-Z,a-z,0-9]'[a-z]' 匹配指定范围内的任意字符。'{n,m}' 最少匹配n次且最多匹配m次'{m}' 匹配m次'|' 两个匹配条件进行逻辑“或”'(...)' 分组匹配'\s' 匹配任何不可见字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。'\S' 匹配任何可见字符。等价于[^ \f\n\r\t\v]。'''import reres=re.match("^.+","helloworld123")#从字符串头开始往后匹配#res=re.search()#整个文本内匹配包含#res=re.findall("[0-9]{3}","123hjk345kl464")#把所有匹配到的字符放到以列表中的元素返回#res=re.split("[0-9]","asf1234df23af")#以匹配到的字符当散列表分隔符#res=re.sub(pattern,replace,string,count)#匹配字符并替换,count代表替换次数res=re.search("(?P<id>[0-9]+)","asdf1234asdf")print(res.group())print(res.groupdict())res=re.search("(?P<id>[0-9]+)(?P<name>[a-zA-Z]+)","asdf1234asdf")print(res)print(res.group())print(res.groupdict())res=re.search("(?P<Province>[0-9]{4})(?P<city>[0-9]{2})(?P<bir>[0-9]{4})","123321199008171021")print(res.groupdict())res=re.split("[0-9]+","asf1234df23af")print(res)#re.I(re.IGNORECASE)#忽略大小写res=re.search("[a-z]+","adfA",flags=re.IGNORECASE)print(res)#re.S(re.s)#改变.的任意匹配模式,不将\n除外res=re.search(r".+","\nadf\nadf",flags=re.S)print(res)
阅读全文
0 0
- 学习笔记(六)模块、包、正则表达式
- JavaScript 学习笔记 六 正则表达式《一》
- JavaScript 学习笔记 六 正则表达式《二》
- JavaScript 学习笔记 六 正则表达式《三》
- java学习笔记(六) -- 正则表达式
- Python学习笔记--正则表达式,re模块
- python学习笔记正则表达式re模块
- flash学习笔记(六)--正则表达式、调试
- Linux基础入门(六) --学习笔记-正则表达式
- Linux shell编程学习笔记(六) 正则表达式
- Python的re(正则表达式)模块学习笔记
- [学习笔记]python之re模块-----正则表达式
- 正则表达式re模块学习!
- 正则表达式学习笔记
- 正则表达式学习笔记
- 正则表达式学习笔记
- 正则表达式学习笔记
- 正则表达式学习笔记
- 基本类型和引用类型的变量在内存存放的内容及对象
- 【C语言】格式控制符
- 9-顺序容器
- 第一个爬虫实例-简单抓取网页内容
- 快速排序
- 学习笔记(六)模块、包、正则表达式
- 标准C语言头文件 ISO C标准定义的头文件(24项)
- 产品经理分析模型
- Linux 的启动流程
- 【BBED】BBED模拟并修复ORA-08102错误
- ReshapeTheMatrix
- 关于table边框,设置了border-collapse:collapse之后,各条边框是怎么合并的?
- [BZOJ1596][Usaco2008 Jan]电话网络(树形dp)
- gridview显示一行的问题