
正文
Python subprocess方法
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
import subprocess
#subprocess.call("df -h",shell=True,stdout=subprocess.PIPE)#打印到视图,但是不能保存,也不能保存变量 #a = subprocess.Popen("df -h",shell=True,stdout=subprocess.PIPE)
#使用原生的shell
#此方法的意思是开一个新的shell子进程执行"df -h"这个命令,如果不加stdout=subprocess.PIPE那么就获取不到返回值,加上的意思是将执行结果返回给给stdout管道输出出来。
#print(a.stdout.read())
#-------------------------------------------
#需要交互的命令示例
import subprocess
obj = subprocess.Popen(["python"],stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE)#相当于新开一个shell进入python交互式命令行,然后标准输入输出全都通过管道输出出来
obj.stdin.write('print (1) \n')
obj.stdin.write('print (2) \n')
obj.stdin.write('print (3) \n')
obj.stdin.write('print (4) \n') out_error_list = obj.communicate(timeout=10)
print(out_error_list) #常用使用subprocess方法
def runCmd(cmd):
res = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
sout,serr = res.communicate()
#print (sout,serr)
#return res.returncode, sout, serr, res.pid
return sout, serr







