re模块剩余和subprocess模块
re模块
import re# [] 范围匹配 中间 用-来连接
# re.findall("[a-zA-Z0-9]","a ab abc abcd a123c")
# 如果要匹配 符号- 要写表达式的左边或右边
# print(re.findall("[-ab]","a ab abc abcd a123c a--"))# 重复匹配 表达式的匹配次数
# * 表示 任意次数 所以0次也满足
print(re.findall("[a-zA-Z]*","a ab abc abcdssdsjad a123c"))
# [a-zA-Z]*
# + 一次或多次
print(re.findall("[a-zA-Z]+","a ab abc abcdssdsjad a123c"))
# [a-zA-Z]+
# ? 0次或1次
print(re.findall("[a-zA-Z]?","a ab abc abcdssdsjad a123c"))# {1,2} 自定义匹配次数 {1,} 1到无穷 {,1} 0到1次
print(re.findall("[a-zA-Z]{1,2}","a ab abc abcdsdssjad a123c"))# + * 贪婪匹配 表达式匹配的情况下 尽可能的多拿 (一直匹配 直到不满足为止)# print(re.findall("\w*","jjsahdjshdjssadsa dssddsads"))
# print(re.findall("\w+","jjsahdjshdjssadsa dssddsads"))
# 非贪婪匹配 在表达式的后面加上?
# print(re.findall("\w?","jjsahdjshdjssadsa dssddsads")) # 非贪婪匹配
#text = """<img src="https://ss1.baidu.com/6ONXsjip0@#4$QIZ8tyhnq/it/u=2972240716,3143951157&fm=55&app=22&f=JPEG?w=121&h=81&s=0FB86D855C624C9C0AB1F57203008031" class="c-img c-img6">"""# 演示贪婪匹配
print(re.findall('src="(http.*?)"',text))# 非贪婪匹配 在表达式的后面加上?
print(re.findall('src="http.*"',text))# print(re.findall("[a-zA-Z]*","a|ab|abc|abcd|a123c"))# 分组 加上分组 不会改变原来的规则 仅仅是将括号中的内容单独拿出来了
print(re.findall("([a-zA-Z]+)_dsb","aigen_dsb cxx_dsb alex_dsb zxx_xsb _dsb"))# re模块中常用的函数
# match 从字符串开始处匹配 只找一个
print(re.match("\w*","abc").group(0)) # 获取匹配成功的内容
# group 用来获取某个分组的内容 默认获取第0组 就是整个表达式本身
print(re.match("([a-zA-Z]+)(_dsb)","aigen_dsb cxx_dsb alex_dsb zxx_xsb _dsb").group(2))
print(re.match("\w*","abc").span()) # 获取匹配成功的内容的索引print(re.search("\w*","abc").group())
# 从全文范围取一个
print(re.search("([a-zA-Z]+)(_dsb)","xxx aigen_dsb cxx_dsb alex_dsb zxx_xsb _dsb"))
# 从开始的位置开始匹配
# print(re.match("([a-zA-Z]+)(_dsb)","xxx aigen_dsb cxx_dsb alex_dsb zxx_xsb _dsb").group())
# 将正则表达式 编译成一个对象 往后可以不用在写表达式 直接开始匹配
# print(re.compile("\w*").findall("abcd"))# print(re.split("\|_*\|","python|____|js|____|java"))# 替换
print(re.sub("python","PYTHON","js|python|java"))
# 用正则表达式来交换位置
text = "java|C++|js|C|python"
# text1 = "java|C++|js|C|python"
# 将整个内容分为三块 java |C++xxxxxx| python
partten = "(.+?)(\|.+\|)(.+)"
".+?ahgshags"
# ?:用于取消分组 就和没写括号一样
# partten = "(?:.+?)(\|.+\|)(.+)"
# print(re.search(partten,text).group(0))
print(re.sub(partten,r"\2\3\1",text))# 当要匹配的内容包含\时
text = "a\p"
"\p"print(text)
print(re.findall(r"a\\p",text))
subprocess模块
import subprocess
# 就用来执行系统命令
import oscmd = r'dir D:\上海python全栈4期\day23 | findstr "py"'
# res = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
# # 从管道中读取数据 管道就是 两个进程通讯的媒介
# # print(type(res.stdout.read().decode("GBK")))
# print(res.stdout.read().decode("GBK"))
# print(res.stderr.read().decode("GBK"))dir = r'dir D:\上海python全栈4期\day23'
find = 'findstr "py"'
"""
stdout 输出管道
stdin 输入管道
stderr 错误管道
"""
res1 = subprocess.Popen(dir,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)res2 = subprocess.Popen(find,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE,stdin=res1.stdout)
# 从管道中读取数据 管道就是 两个进程通讯的媒介
# print(type(res.stdout.read().decode("GBK")))
# print(res1.stdout.read().decode("GBK"))
print(res2.stderr.read().decode("GBK"),"33333")# 简单总结 subprocess 主要用于执行系统指令 (启动子进程) 与os.system的不同在于
# subprocess 可以与这个子进程进行数据交换
re模块剩余和subprocess模块相关推荐
- subprocess模块最全笔记
文章目录 subprocess subprocess.Popen 类 Popen 对象的属性 Popen 对象的方法 subprocess模块的其他方法 subprocess模块的其他属性 subpr ...
- 【Python】python之subprocess模块详解
[Python]python之subprocess模块详解 subprocess模块 subprocess是Python 2.4中新增的一个模块,它允许你生成新的进程,连接到它们的 input/out ...
- python3使用subprocess_python3中使用subprocess模块执行外部命令
一. subprocess模块介绍 1. subprocess模块可以替代os模块下的os.system和os.popen等操作方法 2. subprocess模块在python2和python3上的 ...
- re的剩余模块和subprocess模块
今天学习了re的剩余模块和subprocess模块 一.re的剩余模块 #[] 范围匹配 中间 用-来连接 re.findall('[a-zA-Z0-9]','a ab asdf sadf asdf ...
- subprocess模块详解
原文地址 Python多进程方面涉及的模块主要包括: subprocess:可以在当前程序中执行其他程序或命令: mmap:提供一种基于内存的进程间通信机制: multiprocessing:提供支持 ...
- python subprocess模块 命令执行
subprocess模块中定义了一个Popen类,通过它可以来创建进程,并与其进行复杂的交互.查看一下它的构造函数: __init__(self, args, bufsize=0, executabl ...
- Python subprocess模块
subprocess subprocess模块介绍 subprocess模块是一个可以将系统内的命令结果赋值给变量并打印, 还可以输出命令执行状态,subprocess可以单独将 命令输出结果与执行状 ...
- python subprocess 模块
subprocess 模块中有一个功能Popen , 可以在代码中调用系统的命令 其功能比os.system 更加强大 代码示例: command = 'python -u %s/generalMak ...
- Python常用模块之subprocess模块
当我们需要调用系统的命令的时候,最先考虑的os模块.用os.system()和os.popen()来进行操作. 但是这两个命令过于简单,不能完成一些复杂的操作,如给运行的命令提供输入或者读取命令的输出 ...
最新文章
- 让我们定义一个ggplot版本的华夫饼图吧
- amd一点也不yes_最不值得买的高端显卡!RTX3080从真香变成了鸡肋?
- 8086CPU写汇编的规则
- 让我们回顾一下如何通过JDBC插入Clob或Blob
- MFC版链表实现稀疏多项式相加减
- Android Themes与Styles实践
- 跨路由器 网段访问rtsp_实验演示:三层交换机与路由器对接
- eclipse运行go test_在 Go 中发现竞态条件 (Race Conditions)
- Solidity陷阱:以太坊的随机数生成
- 集群ddos_《DNS攻击防范科普系列2》 -DNS服务器怎么防DDoS攻击
- 【转】win10安装caffe教程
- 彻底禁止电脑弹出广告的方法(以2345好压为例)
- c语言学习——设圆半径r = 1.5,圆柱高h = 3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积
- mysql的my.cnf常用配置
- C#汉字转拼音首字母
- spring bean的init、destory的几种方法及生命周期
- spring 注解练习
- 今日头条校园招聘历年经典面试题汇总:C++研发岗
- 基于8086微机原理核心考点(考试必背)
- 2021固原一中高考成绩查询榜,【固原一中高考成绩实现新突破】
热门文章
- Kotlin可能带来的一个深坑,系列篇
- 【渝粤教育】广东开放大学 广东开放大学学习指引 形成性考核 (28)
- Android获取硬件设备详细信息
- 计算机网络按分布范围分类可分为局域网,计算机网络按照覆盖范围可以分为局域网...
- 原来iPhone自带Respring(注销重启桌面)功能
- redies 须知小结
- next主题搭建相册(无需安装插件,代码即可实现)
- 医疗管理系统-检查项管理
- 资金安全责任险对个人账户负责?
- 互联网日报 | 7月21日 星期四 | 脉脉CEO再回应点评招聘评论真实性;​微信版本再更新;上半年前十位SUV品牌销量排名出炉...