《菜鸟思考》
怎么实现命令行和操作系统进行交互?
怎么获取命令执行成功的返回值?
怎么获取命令执行的输出结果?
怎么使用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