Python常用模块(四)
一.re模块
正则表达式时计算机科学的一个概念,正则表达式通常被用来检索,替换那些符合某个模式的文本,大多数程序设计语言都支持利用正则表达式进行字符串操作.
正则就是用一些具有特殊含义的符号组合到一起来描述字符或者字符串的方法,或者说正则就是用来描述一类事物的规则.它内嵌在python中,并通过re模块来实现,正则表达式模式被编译成一系列的字节码,然后由C编写的匹配引擎执行.re模块的作用是对字符串进行过滤,在一字符串中如果想要找到想要得到的内容就需要告知其过滤规则,这个过滤规则就是正则表达式.
常用匹配模式:
- import re
- # 待处理字符串
- str1 = 'abc-d$eaf+ \n 1*/__g12a3'
- # findall()在字符串中查找所有满足条件的
- # \w查找字母数字下划线 \W查找非字母数字下划线
- print(re.findall('\w',str1))
- print(re.findall('\W',str1))
- # \s查找所有不可见字符 \S查找所有可见字符
- print(re.findall('\s',str1))
- print(re.findall('\S',str1))
- # \d查找任意数字 \D查找任意非数字
- print(re.findall('\d',str1))
- print(re.findall('\D',str1))
- # \n
- print(re.findall('\n',str1))
- # .匹配除了换行符的任意字符
- print(re.findall('.',str1))
- # \s\w\d 都是匹配单个字符
- # 匹配重复字符* + ? {}
- # *前面的表达式匹配0次或多次
- print(re.findall('\w\d*',str1))
- # +前面的表达式匹配1次或多次
- print(re.findall('\d+','1 11 asf 2'))
- # ?前面的表达式匹配1次或0次
- print(re.findall('\d?','1 111'))
- # {m,n}最少m次,最多n次
- print(re.findall('\d{1,3}','1 12111'))
- #{m}必须是m次
- print(re.findall('[a-z]{3}','aaa aa a aa aaa aaaa'))
- # 从字符中找到左右的0或1或2
- # | 匹配范围
- print(re.findall('0|1|2','123af45ad60d21'))
- # []字符集合 中括号中的符号不是整体是单个字符
- print(re.findall('[012]','123af45ad60d21'))
- # 在范围匹配时使用脱字符表示取反
- print(re.findall('[^0-9]','123af45ad60d21'))
- # 请找出所有的数字0-9和字母a-z A-Z 注意 减号只有在两个字符中间才有范围的意思
- print(re.findall('[0-9a-zA-Z]','123+_lk#$a'))
- # ^ 匹配行首
- print(re.findall('^h','hellohh'))
- # $ 匹配行尾 注意$写在表达式的后面
- print(re.findall('ha$','hellohha'))
- # \b匹配单词末尾
- print(re.findall(r'h\B','elloh wohrld okhi'))
- # 贪婪匹配 * +
- # 会一直匹配到不满足条件为止 用问好来阻止贪婪匹配(匹配最少满足条件的字符数)
- print(re.findall('\w*?','sfasdefd'))
- src = "<img src='www.baidu.jpg'><img src='www.baidu1.jpg'><img src='www.baidu2.jpg'>"
- # ()用于给正则表达式分组(group) 不会改变原来的表达式逻辑意义
- # 优先取出括号内的内容 ?:取消括号的优先级
- print(re.findall("src='(.+?)'",src))
二.subprocess模块
subprocess模块是python2.4中新增的一个模块,它允许你生成新的进程,连接到它们的in/out/err管道,并获取他们的返回码.
subprocess模块中常用函数:
subprocess.run() Python 3.5中新增的函数。执行指定的命令,等待命令执行完成后返回一个包含执行结果的CompletedProcess类的实例
subprocess.call() 执行指定的命令,返回命令执行状态,其功能类似于os.system(cmd)。
subprocess.Popen() 该类用于在一个新的程序中执行一个子程序.上面的函数都是基于subprocess.Popen类实现的
实例代码:
- import subprocess
- res = subprocess.run('tasklist',shell=True,stdout=subprocess.PIPE)
- print(res.stdout.decode('gbk'))
- print(res.stderr)
- #
- res = subprocess.call('tasklist',shell=True)
- print(res)
- # 第一个进程a读取tasklist的内容 将数据交给另一个进程b 另一个进程b将数据写到文件中
- res1 = subprocess.Popen('tasklist',stdout=subprocess.PIPE,shell=True,stderr=subprocess.PIPE)
- res2 = subprocess.Popen('findstr cmd',stdout=subprocess.PIPE,shell=True,stderr=subprocess.PIPE,stdin=res1.stdout)
- print(res2.stdout.read().decode('gbk'))
Python常用模块(四)的更多相关文章
- python常用模块之时间模块
python常用模块之时间模块 python全栈开发时间模块 上次的博客link:http://futuretechx.com/python-collections/ 接着上次的继续学习: 时间模块 ...
- python常用模块-调用系统命令模块(subprocess)
python常用模块-调用系统命令模块(subprocess) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. subproces基本上就是为了取代os.system和os.spaw ...
- python常用模块-配置文档模块(configparser)
python常用模块-配置文档模块(configparser) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. ConfigParser模块用于生成和修改常见配置文档,当前模块的名称 ...
- Python常用模块-摘要算法(hashlib)
Python常用模块-摘要算法(hashlib) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MD5算法参数详解 1.十六进制md5算法摘要 #!/usr/bin/env p ...
- Python常用模块-时间模块(time&datetime)
Python常用模块-时间模块(time & datetime) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.初始time模块 #!/usr/bin/env pyth ...
- Python常用模块之sys
Python常用模块之sys sys模块提供了一系列有关Python运行环境的变量和函数. 常见用法 sys.argv 可以用sys.argv获取当前正在执行的命令行参数的参数列表(list). 变量 ...
- Python常用模块中常用内置函数的具体介绍
Python作为计算机语言中常用的语言,它具有十分强大的功能,但是你知道Python常用模块I的内置模块中常用内置函数都包括哪些具体的函数吗?以下的文章就是对Python常用模块I的内置模块的常用内置 ...
- python——常用模块2
python--常用模块2 1 logging模块 1.1 函数式简单配置 import logging logging.debug("debug message") loggin ...
- python——常用模块
python--常用模块 1 什么是模块: 模块就是py文件 2 import time #导入时间模块 在Python中,通常有这三种方式来表示时间:时间戳.元组(struct_time).格式化的 ...
随机推荐
- Q的进阶用法
Q的实例化用法 #q1 里面的条件都是or的关系 q1=Q() q1.connector = 'OR' q1.children.append(('id',1)) q1.children.append( ...
- 数据结构6: 静态链表及C语言实现
本节继续介绍线性表的另外一种链式表示——静态链表.(前面介绍的链表称为 动态链表 ). 逻辑结构上相邻的数据元素,存储在指定的一块内存空间中,数据元素只允许在这块内存空间中随机存放,这样的存储结构生成 ...
- SpringMVC from 表单标签和 input 表单标签
刚学习很懵 不知道还有springmvc 自己的表单 于是乎就上网查了一下 这个真的好用多啦 刚学习很懵 不知道还有springmvc 自己的表单 于是乎就上网查了一下 这个真的好用多啦 ...
- gitflow工作流简介
gitflow工作流是一种依赖于Git版本管理工具,按特定规范对项目开发.测试.上线流程进行管理的工作方式.它是一种为实现规范化管理的约定,它明确了各个分支的意义,使整个团队的分工协作更加和谐明晰. ...
- How can I use wget in Windows
http://www.ehow.com/how_10054131_use-wget-windows.html
- SprimgMVC学习笔记(七)—— 上传图片
一.配置虚拟目录 在tomcat上配置图片虚拟目录,在tomcat下conf/server.xml中添加: <Context docBase="D:\upload\temp" ...
- form组件之modelForm
modelForm的使用及参数设置 从modelForm这个名字就能看出来,这个form是和模型类model有知己诶关联的,还是以数和出版社的模型来说明: models.py(模型) from dja ...
- Binutils工具集常用工具
GNU为GCC编译器提供了配套的辅助工具集(Binutils)http://www.gnu.org/software/binutils/ 1. addr2line ①将指定地址转换为对应的文件名和行号 ...
- 6.SpringMVC2
1.视图解析 当客户端发出请求后,交由SpringMVC的DispatcherServlet处理,接着Spring会分析看哪一个HandlerMapping定义的所有请求映射中对该请求的最合理的映射, ...
- 15-----BBS论坛
BBS论坛(十五) 15.1.登录界面完成 (1)front/signbase.html {% from 'common/_macros.html' import static %} <!DOC ...