subprocess模块使用

本文介绍了Python的subprocess模块,用于与操作系统进行交互,执行命令并获取输出结果和状态码。对比了os模块,强调了subprocess的灵活性,如run、call、check_call、check_output等函数的用法,并解释了Popen类的作用。文章还指出在使用过程中需要注意的编码、循环读取输出和处理空列表等问题。
摘要由CSDN通过智能技术生成

《菜鸟思考》
怎么实现命令行和操作系统进行交互?
怎么获取命令执行成功的返回值?
怎么获取命令执行的输出结果?
怎么使用python和执行linux下的shell命令?
os模块 subprocess模块有什么区别,分别是干什么的?

os模块

os.system(command) 返回命令执行状态码,而将命令执行结果输出到屏幕
(这个结果是不能获取的,只能直接打印显示,能够获取的及时返回的状态码,下面的这个0就是一个状态码)

import os
a = os.system("top -b1 -n1|grep java")
print(a)

能够看到结果
12194 LLL 20 0 6817076 897396 44376 S 23.5 11.1 27:01.48 java
0

os.popen(command).read() 可以获取命令执行结果,但是无法获取命令执行状态码(这里的这个结果返回的是一个文件对象,所以能够通过read()writer()等方法

import os
c = os.popen("top -b1 -n1 |grep java").read()
print(c)

因为这两个函数各有利弊,出现了既能够返回状态码的又能够获取返回结果
subprocess模块

subprocess模块中的常用函数
subprocess.run() Python 3.5中新增的函数。执行指定的命令,等待命令执行完成后返回一个包含执行结果的CompletedProcess类的实例。
subproces

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值