python程序中调用其他程序的实现
y6y6y666 人气:01.os.system函数
wget 是一个下载软件的程序,如果已经下载好该软件,可以用py调用该软件。假如该软件目录在d:\tools\wget
import os cmd =r'd:\tools\wget http://mirrors.sohu.com/nginx/nginx-1.13.9.zip' os.system(cmd) print('安装完毕')
实际上有三个程序:
py、shell、wget
py程序在哪里就下载到那里。
缺点:1.只有调用程序执行完后才能向下运行,不能获取页面内容。
解决以上两种缺点可以使用subprocess模块。
2.subprocess模块
可以获取内容。比如获取磁盘使用情况。
subprocess中的Popen类。照着视频写了一遍,好像是权限不够,就在管理员终端运行了,但是因为视频的格式输出和我的不一样所以切割方式也不一样,经过反复调试,终于切割出来了。
from subprocess import PIPE,Popen #返回的是Popen实例对象 proc=Popen( 'fsutil volume diskfree c:', stdin=None, stdout=PIPE, stderr=PIPE, shell=True) #communicate方法返回 输出到 标准输出 和标准错误 的字节串内容 #标准输出设备和标准错误设备 当前都是本终端设备 #获取输出和错误 outinfo,errinfo=proc.communicate() #注意返回的内容是bytes 不是 str,解码,将机器码解码为字符串 outinfo =outinfo.decode('gbk') errinfo =errinfo.decode('gbk') print(outinfo) print('------------') print(errinfo) #结果分行输出 outputList=outinfo.splitlines() print(outputList) #剩余量 #第0(1)行,split用于切片,replace用于重写,strip()用于将字符串的首尾中空格删除 free=int(outputList[0].split(':')[1].replace(',',"").strip().split(' ')[0]) #总空间 total=int(outputList[1].split(':')[1].replace(',',"").strip().split(' ')[0]) print('使用百分比:{:.2%}'.format(free/total)) if(free/total<0.1): print('!!剩余空间告急!!!') else: print('剩余空间足够')
终于写完了。。。。。。。。。。。
subprocess可以同实进行下边的任务。
from subprocess import Popen proc=Popen( args='wget http://mirrors.sohu.com/nginx/nginx-1.13.9.zip', shell=True ) print('让他下载,我们先作其他的的事情')
加载全部内容