python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python程序调用其他程序

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

作者:y6y6y666

本文主要介绍了python程序中调用其他程序的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

到此这篇关于python程序中调用其他程序的实现的文章就介绍到这了,更多相关python程序调用其他程序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文