首页 > 代码库 > python模块与正则表达式

python模块与正则表达式

一、模块

模块实质上就是一个python文件,它是用来组织代码的,意思就是说把python代码写到里面,文件名就是模块的名称,test.py test就是模块名称。

import 模块的实质就是把要导入模块里面的代码,从上到下执行一遍找模块的顺序是,先从当前目录下找,找不到的话,再环境变量里面找。

模块的分类:

? 标准库:python内置的

? 开源模块:第三方

? 自定义模块:自己写的

其中开源模块需要安装,安装方式有一下两种:

安装方式第一种:

这是操作系统命令,不是在python命令行里面执行

pip install xxx 安装某个模块

pip list 查看已经安装的模块

pip uninstall xxx卸载模块

pip这个模块呢,在python3里面是python自带的,安装完python就能直接用,但是在python2里面是没有这个模块的,需要你手动安装才能用

easy_install requests #这个也是傻瓜式的

第二种方式,手动安装:

1、先下载安装包,直接百度搜比如说python requests模块

2、解压安装包

3、在解压的目录下执行 python setup.py install

OS模块

print(os.getcwd())#取当前工作目录

print(os.chdir(r"e:\byz_code\day2"))#更改当前目录

print(os.mkdir("test1"))#创建文件夹

print(os.makedirs(r"test1\test2"))#递归创建文件夹,父目录不存在时创建父目录

print(os.removedirs(r"test1\test2"))#递归删除空目录

print(os.rmdir("test1"))#删除指定的文件夹,只能删除空文件夹

print(os.remove(r"E:\byz_code\day4\a.txt"))#删除文件

os.rename("test","test1")#重命名

print(os.sep)#当前操作系统的路径分隔符

print(__file__)#代表当前文件

print(os.path.abspath(‘bb.py‘))#获取绝对路径

print(__file__)#代表当前文件

print(os.path.dirname)

print(os.path.dirname(os.path.dirname(__file__)))#获取父目录

print(os.path.exists("hhaaa"))#目录/文件是否存在

print(os.path.isfile("bb.py"))#判断是否是一个文件

print(os.path.isdir("/usr/local"))#是否是一个路径

print(os.path.join("root",‘hehe‘,‘haha‘,‘a.log‘))

RE模块

re.match 只有在0位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,match()就返回none

re.search 匹配包含,search()会扫描整个字符串并返回第一个成功的匹配

re.findall 把所有匹配到的字符放到以列表中的元素返回

re.splitall 以匹配到的字符当做列表分隔符

re.sub 匹配字符并替换

 二、正则表达式

正则表达式

正则表达式就是用查找字符串的,它能查找规则比较复杂的字符串

数量词
‘*‘     匹配*号前的字符0次或多次,只是*前面的一个字符
print(re.findall(r‘a*b‘,‘ab a abbbbbb aab‘))
>>> [‘ab‘, ‘ab‘, ‘b‘, ‘b‘, ‘b‘, ‘b‘, ‘b‘, ‘aab‘]
‘+‘     匹配前一个字符1次或多次,只是+前面的一个字符
print(re.findall(r‘st+‘,‘besttest is best s‘))
>>> [‘stt‘, ‘st‘, ‘st‘]
‘?‘     匹配前一个字符1次或0次,只是?前面的一个字符
print(re.findall(r‘st?‘,‘besttest is best‘))
‘{2}‘   匹配前一个字符m次
print(re.findall(r‘t{2}er‘,‘besttest is best  letter letter‘))
>>> [‘tter‘,‘tter‘]
‘{n,m}‘ 匹配前一个字符n到m次
print(re.findall(r‘t{1,3}‘,‘besttest is best ttttt‘))
>>> [‘tt‘, ‘t‘, ‘t‘,‘ttttt‘]

一般字符
‘.‘     默认匹配除\n之外的任意一个字符
print(re.findall(r‘b.‘,‘besttest is good ba bf bo‘))
>>> [[‘be‘, ‘ba‘, ‘bf‘, ‘bo‘]
‘\‘   转译符,前面的* + ?这样的字符都有特殊含义了,如果你想就想找它的话,那就得转译了
意思就是说如果你想让特殊字符失去以前的含义,那么就得给它前面加上\
print(re.findall(r‘\?‘,‘besttest is best????‘))
>>> [‘?‘, ‘?‘, ‘?‘, ‘?‘]
‘|‘     匹配|左或|右的字符
print(re.findall(r‘best|is‘,‘besttest is best‘))
>>> [‘best‘, ‘is‘, ‘best‘
‘[]‘ 字符集合,某些字符的集合,匹配的时候是这个集合里面的任意一个就行
print(re.findall(r‘be[stacj]‘,‘besttest is best bejson bed‘))
>>>[‘bes‘, ‘bes‘, ‘bej‘]
[]里面如果用^的话代表取反,也就是不包括的这些字符串的
print(re.findall(r‘be[^stac]‘,‘besttest is best bejson‘))

边界匹配

‘^‘     匹配以什么字符开头,多行情况下匹配每一行的开头
print(re.findall(r‘^b‘,‘besttest is good\nbestest‘,re.M))   #re.M表示匹配多行
print(re.findall(r‘^http://‘,‘http://www.baidu.com is good\nbestest‘))
>>> [‘b‘]
print(re.findall(r‘^b‘,‘besttest is good\nbest‘),re.M)#多行模式
>>> [‘b‘,‘b‘]
‘$‘     匹配以什么字符结尾,多行情况下匹配每一行的结尾
print(re.findall(r‘d$‘,‘besttest is good‘))

 

未全整理完,后续整理

python模块与正则表达式