Python入门学习
DAY20
今日内容: re模块 subprocess
re模块(正则表达式)
1.什么是正则
就是一些带有特殊含义的符号或者符号的组合 它的作用是对字符串进行过滤
2.常用匹配模式
\w 匹配字母数字下划线 \W 匹配非字母数字下划线
\s 匹配所有不可见字符 \S 匹配所有可见字符
\d 匹配所有数字 \D 匹配所有非数字
. 点 匹配任意字符 除了\n
+ 重复一次或者多次 ? 表示重复0次或 1次
{m,n} 最少m次,最多n次 {m} 必须是m次 {,m} 最大m次
特殊字符直接匹配
列: print(re.findall('\n',src)) print(re.findall('\t',src))
a|b 匹配a或者b
^ 匹配行首 在范围匹配时使用脱字符表示取反
$ 匹配行尾 注意:写在表达式后面
3.re模块常用方法
findall 从左往右查找所有满足条件的字符 返回一个列表
search 返回第一个匹配的字符串 结果封装为对象 span=(0, 5) 匹配的位置 match匹配的值
match 匹配行首 返回值与search相同
对于search match 匹配的结果通过group来获取
compile 将正则表达式 封装为一个正则对象 好处是可以重复使用这个表达式
subprocess
1.什么是subprocess模块
sub 子
process 进程
什么是进程
正在进行中的程序 每当打开一个程序就会开启一个进程
每个进程包含运行程序所需的所有资源
正常情况下 不可以跨进程访问数据
但是有些情况写就需要访问别的进程数据 提供一个叫做管道的对象 专门用于跨进程通讯作用:用于执行系统命令
2.常用方法
run 返回一个表示执行结果的对象
call 返回的执行的状态码总结 subprocess的好处是可以获取指令的执行结果
subprocess执行指令时 可以在子进程中 这样避免造成主进程卡死# 第一个进程a读取tasklist的内容 将数据交给另一个进程b 进程b将数据写到文件中 res1 =subprocess.Popen("tasklist",stdout=subprocess.PIPE,shell=True,stderr=subprocess.PIPE) res2 = subprocess.Popen("echo >a.txt", stdout=subprocess.PIPE, shell=True,stderr=subprocess.PIPE,stdin=res1.stdout) print(res2.stdout.read().decode("gbk"))
以上为本次学习内容