亲宝软件园·资讯

展开

python程序中调用其他程序的实现

y6y6y666 人气:0

1.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('让他下载,我们先作其他的的事情')

加载全部内容

相关教程
猜你喜欢
用户评论