网络编程
位置:首页>> 网络编程>> Python编程>> python程序中调用其他程序的实现

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

作者:y6y6y666  发布时间:2021-08-07 12:33:16 

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

来源:https://blog.csdn.net/m0_74020775/article/details/128807648

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com