婴儿做相册的网站,网站搭建需要多少钱?,网站设计 案例,邢台市教育局subprocess 模块是 2.4 版本中新增的模块, 它允许您生成新进程#xff0c;连接到它们的 输入 / 输出 / 错误 管道#xff0c;并获得它们的返回码 (状态信息), 该模块的目的在于取代几个较旧的模块和功能
subprocess 模块可以用于执行系统命令, 拿到执行的结果, 速度比较的快…subprocess 模块是 2.4 版本中新增的模块, 它允许您生成新进程连接到它们的 输入 / 输出 / 错误 管道并获得它们的返回码 (状态信息), 该模块的目的在于取代几个较旧的模块和功能
subprocess 模块可以用于执行系统命令, 拿到执行的结果, 速度比较的快, 并且它允许你创建一个新的进程让其去执行另外的程序, 并与它进行通信获取标准的输入、标准输出、标准错误以及返回码等
1、简单执行命令拿到结果
import subprocess# shell是开启一个终端stdout正确结果stderr错误结果
obj subprocess.Popen(dir, # 在终端运行的命令shellTrue, # 新开一个终端stdoutsubprocess.PIPE, # 执行完命令, 将正确输出放到一个管道里stderrsubprocess.PIPE) # 将错误输出放到一个管道里
# 正确的输出结果
result obj.stdout.read() # 拿到的是 bytes 格式的字符生成的结果需要解码,
result result.decode(gbk) # 在windows需要使用gbk编码,linux和mac上是utf-8
print(result)# 错误的输出结果
error_res obj.stderr.read()
error_res error_res.decode(gbk)
print(error_res)
输出结果
C:\Users\Anita\AppData\Local\Programs\Python\Python38\python.exe D:\systemdoc\desk\subprocess模块\demo001.py 驱动器 D 中的卷是 新加卷卷的序列号是 48E6-1CBAD:\systemdoc\desk\subprocess模块 的目录2024/06/18 21:50 DIR .
2024/06/18 21:50 DIR ..
2024/06/18 21:28 DIR .idea
2024/06/18 21:50 744 demo001.py1 个文件 744 字节3 个目录 43,191,549,952 可用字节2、将第一次执行命令拿到的结果进行第二次操作
import subprocessres1 subprocess.Popen( # 开启的第一的进程dir,shellTrue,stdoutsubprocess.PIPE,stderrsubprocess.PIPE,
)res2 subprocess.Popen( # 开启的第二个进程findstr demo*, #在dir的结果中查询包含demo*的文件shellTrue,stdinres1.stdout, # 将第一个进程的正确输出结果拿到做处理stdoutsubprocess.PIPE,stderrsubprocess.PIPE,
)result res2.stdout.read()
result str(result, encodinggbk)
print(result)
运行结果
C:\Users\Anita\AppData\Local\Programs\Python\Python38\python.exe D:\systemdoc\desk\subprocess模块\demo001.py
2024/06/18 21:56 487 demo001.py3、直接一条终端命令实现上面的操作
import subprocessres1 subprocess.Popen(dir | findstr demo*, # 使用管道符号运行命令shellTrue,stdoutsubprocess.PIPE,stderrsubprocess.PIPE,
)result res1.stdout.read()
result str(result, encodinggbk)
print(result)