python全栈脱产第20天------常用模块---re模块和subprocess模块
一、re模块
定义:正则表达式子,就是一些带有特殊含义的符号或者符号的组合
用途:对字符串进行过滤,找到你需要的内容,通过正则表达式告诉计算机你的过滤规则是什么样的
语法:\w字母数字下划线 \W非字母数字下划线
\s所有不可见的字符(空格、\n、\r等) \S所有可见字符
\d所有数字 \D所有非数字
.出\n意外任意字符 以上都是匹配单个字符
*前面的表达式出现任意次 +重复1次或多次 ?重复0次或1次 {m,n}最少出现m次,最多出现n次 {m}必须出现m次 {,m}最大m次
|或 []字符集合 ^匹配行首 $匹配行末
?:取消组名 +?只取1次 *?只取0次 ??只取0次 ()分组
方法:findall:从左到右查找所有满足匹配的字符,返回一个列表
search:从左到右查找第一个满足匹配的字符串,结果封装成对象 span=(0,5)匹配的位置
match:匹配行首,返回值与search相同 匹配结果通过group来获取
compile:将正则表达式封装成一个正则对象,可以重复使用这个表达式
二、subprocess模块
定义:子进程:进程就是正在进行中的程序,每当打开一个程序就会开启一个进程,正常情况下不可以跨进程访问数据,当有需要时,通过一个叫管道的对象,来跨进程通讯
用途:用于执行系统命令
方法:run 返回一个表示执行结果的对象
call 返回的执行的状态码
总结:subprocess的好处是可以获取指令的执行结果
subprocess执行指令时,可以在子进程中,这样可以避免主进程卡死
注意:管道的read方法和文件的read有相同的问题,read后光标会到文件的末尾,导致第二次无法read到数据