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


猜你喜欢
- Golang多线程刷票的实现代码直接用Go语言来写下刷票。package mainimport ("fmt" "
- 废话不多说了直接给大家贴代码了。代码如下:<script language="JavaScript"><
- vue项目无法删除问题今天删除本地的vue项目,一直提示“操作无法完成,因为其中的文件夹或文件已在另一个程序组打开,请关
- order by 从英文里理解就是行的排序方式,默认的为升序。 order by 后面必须列出排序的字段名,可以是多个字段名。 &
- 本文实例讲述了php+jQuery实现的 * 导航栏下拉菜单显示效果。分享给大家供大家参考,具体如下:首先看看效果图:1.数据配置文件 db.
- 前言本文主要介绍的是Python如何使用zip函数同时遍历多个迭代器,文中的版本为Python3,zip函数是Python内置的函数。下面话
- 1、字符串(1)概念字符串英文名string,简称str。 字符串就是由一个个字符连接起来的组合, 你平时所见的字母、数
- 建议先看vue瀑布流组件上拉加载更多再来食用本文,如果直接想看源码文末就是~文末新增组件优化,之所以没有删优化前的代码是想让以后自己还能看到
- 错误信息UnicodeDecodeError: ‘utf-8' codec can't decode byte 0xce i
- 前言:多线程简单理解就是:一个CPU,也就是单核,将时间切成一片一片的,CPU轮转着去处理一件一件的事情,到了规定的时间片就处理下一件事情。
- 1.查看当前电脑python版本python -V // 显示2.7.x2.用brew升级pythonbrew update p
- 索引是排好序的数据结构!可以用在 where 条件查找的字段,和order by 排序的字
- 什么是图像平滑处理在尽量保留图像原有信息的情况下,过滤掉图像内部的噪声,这一过程我们称之为图像的平滑处理,所得到的图像称为平滑图像。那么什么
- 引言在观察MySQL本地连接的时候,发现对mysql.sock是个啥我不明白,于是我提出了一个问题:mysql.sock到底存了什么信息?根
- 今天早上起来写爬虫,基本框架已经搭好,添加多线程爬取功能时,发现出错:比如在下载文件的url列表中加入200个url,开启50个线程。我的爬
- 背景介绍Pandas的DataFrame和Series在Matplotlib基础上封装了一个简易的绘图函数,使得数据处理过程中方便可视化查看
- python一直被病垢运行速度太慢,但是实际上python的执行效率并不慢,慢的是python用的解释器Cpython运行效率太差。“一行代
- 如下所示: static void Main()&nbs
- 本文实例为大家分享了python实现二叉树的遍历具体代码,供大家参考,具体内容如下代码:# -*- coding: gb2312 -*- c
- 启动mysql server 失败,查看/var/log/mysqld.err080329 16:01:29 [ERROR] Can'