1、re模块
Python正则表达式:
原始字符串:
原始字符串形式是在普通字符传文字量前加r或R前缀,例如:
R’abcdefg’
r’C:coursepythonprogs’
原始字符串只有一点特殊,就是其中的反斜线字符’’不作为转义符,在相应的字符串对象里保留原样.单位于单引号和双引号前的反斜线符号仍作为转义符.
元字符(特殊字符)
正则表达式包规定了一组特殊字符,称为元字符.在匹配字符串时,它们起着特殊的作用.这种字符一共有14个:
. ^ $ * + ? {} [] ()
主要操作:
在下面的函数说明中,参数里的pattern表达模式串(描述正则表达式的字符串),string表示被处理的字符串,repl表示替换串,既操作中的另一个字符串.
- 生成正则表达式对象:re.compile(pattern,flag=0)
r1 = re.compile(‘abc’)
- 检索:re.search(pattern,string,flag=0)
在string里检索与pattern匹配的子串.如果找到就返回一个match类型的对象;否则返回None。match对象里记录成功匹配的相关信息,可以根据需要检查和使用。也可以把match对象简单作为真值用于逻辑判断。
- 匹配:re.match(pattern,string,flag=0)
检查strings是否存在一个与pattern匹配的前缀。匹配成功时返回相应的match对象,否则返回None。例如:
re.search(r1, ’aaabcbcbabcb’) #将匹配成功
re.match(r1, ’aaabcbcbabcb’) #返回None
- 分隔:re.split(pattern,string,maxspilt=0,flags=0)
以pattern作为分隔串将string分段.参数maxsplit指明最大分隔数,用0表示要求处理完整个string.函数返回值分隔得到的字符串的表.例如:
re.split(‘ ‘,’abc abb are not the same’)
得到:[‘abc’, ‘abb’, ‘are’, ‘not’, ‘the’, ‘same’]
re.split(‘’, ‘1 2 3 4’)#分隔出了几个空串
得到:[‘1’, ‘2’, ‘’, ‘3’, ’’, ‘’, ‘4’]
- 找出所有匹配串:re.finadall(pattern, string, flag=0)
返回一个表,表中元素是按顺序给出的string里与pattern匹配的各个子串(从左到右,非重叠的).如果模式里只有常规字符,做这种匹配的价值不大,因为结果里的所有字符串相同.但用一般的正则表达式,情况就可能不同.
- subprocess模块
sub 子
process 进程
表示正在进行的进程,没当打开一个程序就会开启一个进程
每个进程包含进行程序所需要的所有资源
正常情况下,不可以跨进进程访问数据
但是有些情况就需要访问别的进程数据
提供一个叫做管道的对象,专用于跨进程通讯
作用:用于执行系统命令
常用方法:
run 返回一个表示执行结果的对象
call 返回的执行的状态码
总结: subprocess的好处是可以获取指令的执行结
subprocess执行指令时,可以在进程中