python基础之re,sys,suprocess模块

时间:2021-12-26 03:16:52

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'))