python基础之re,sys,suprocess模块
re 正则表达式
1.什么是正则?
正则就是用一系列具有特殊含义的字符组成的规则,该规则用来描述具有某一特征的字符串。
正则就是用来在一个大的字符串匹配出符合规则的子字符串
2.为什么用正则?
正则可以用来检验用户注册的合法性,可以爬虫等等
3.如何使用正则?
\w 匹配字母、数字、下划线 \W 匹配非字母数字下划线的字符
\s 匹配空白字符(\t,\n,\r,\f) \S 匹配非空白字符
\d 匹配数字0-9 \D 匹配非数字
\n 匹配换行符 \t 匹配制表符
^ 匹配字符开头 $ 匹配字符末尾
重复匹配
. 匹配任意一个字符,若加上re.DOTALL则可以匹配换行符
[] 匹配一个,该字符属于中括号中指定的字符
[a-z] 代表a-z所有的小写字母
[^] 代表取反 []内有特殊意义的字符如-需要取义
以下必须与其它字符连用:
* 表示出现0次或无穷次
? 表示左侧的字符出现0次或者1次
+ 表示左侧的字符出现1次或者无穷次
{1,3} 表示左侧的字符至少出现一次,最多3次
.* 贪婪匹配 .*?非贪婪匹配
分组() 正常匹配,最后取到组内的值
a|b 匹配a或b
(?:) 正常匹配,但不是只取组内的值
findall 返回所有在[]内的值
search 匹配一个,返回一个对象,不存在则返回none
加.group() 返回值
match() 与search一样,但从头开始
split() 与字符串的类似
sub(‘原’,‘现’,‘str’,个数)
compile 存正则表达式,便于重复使用
sys模块
sys.argv 命令行参数List,第一个元素是程序本身路径
sys.exit(n) 退出程序,正常退出时exit(0)
sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
打印进度条方法:
import sys import time def progress(percent,width=50): if percent >= 1: percent=1 show_str=('[%%-%ds]' %width) %(int(width*percent)*'#') print('\r%s %d%%' %(show_str,int(100*percent)),file=sys.stdout,flush=True,end='') data_size=1025 recv_size=0 while recv_size < data_size: time.sleep(0.1) #模拟数据的传输延迟 recv_size+=1024 #每次收1024 percent=recv_size/data_size #接收的比例 progress(percent,width=70) #进度条的宽度70
suprocess模块
import subprocess obj = subprocess.Popen( 'tasklist', # 进程表 shell= True, # 用于打开cmd stdout = subprocess.PIPE, # 正确管道 stderr = subprocess.PIPE # 错误管道 ) info = obj.stdout.read() print(info.decode('GBK'))