使用python执行系统命令——subprocess
背景:subprocess是python官方推荐调用系统命令的模块
import subprocess
subprocess最主要的两个方法/类:
# 参数说明:stdin和stdout相当于一个管道。激活stdout变量后执行结果将被重定向到stdout这个文件中,激活stdin可以从这里输入与子程序(用这个脚本执行系统命令再打开的程序)交互的命令。
注意:要想激活这两个变量必须给他们赋予一个模块指定的变量"subprocess.PIPE"
# shell:如果此变量被设为True,则会调用系统默认shell(cmd/bash)执行系统命令,如果设为False则用python解释器自己的shell执行命令。
# timeout:执行命令后的等待时间,超时则停止继续往下执行
# stderr:保存错误信息
subprocess.run('此处写操作系统的命令', *,stdin=None, input=None, stdout=None, stderr=None, shell=False, timeout=None, check=False, encoding=None, errors=None)
subprocess.Popen('此处写操作系统的命令', *, stdin=None, input=None, stdout=None, stderr=None, shell=False, timeout=None, check=False, encoding=None, errors=None)
一、获取执行操作命令后的结果:
bb = subprocess.run('ipconfig', stdout=subprocess.PIPE)
print(bb.stdout.decode('gbk')) ======> 执行结果就保存在stdout这个变量中
二、利用python代码打开一个程序,并且和这个程序实现交互:
1、直接输入交互命令方式:
bb = subprocess.Popen('python', stdout=subprocess.PIPE, stdin=subprocess.PIPE)
bb.stdin.write(b'print("123")')
bb.stdin.close()
print(bb.stdout.read())
2、从文件读取交互命令方式
f = open('123') =====>此文件包含要执行的交互命令
bb = subprocess.run('python', stdout=subprocess.PIPE, stdin=f)
print(bb.stdout)
使用python执行系统命令——subprocess的更多相关文章
- 转 Python执行系统命令的方法
传送门 Python执行系统命令的方法 http://www.linux-field.com/?p=15 Python中执行系统命令常见方法有两种: 两者均需 import os (1) os.sys ...
- python 执行系统命令模块比较
python 执行系统命令模块比较 1.os.system模块 仅仅在子终端运行命令,返回状态码,0为成功,其他为失败,但是不返回执行结果 如果再命令行下执行,结果直接打印出来 >>> ...
- python执行系统命令后获取返回值的几种方式集合
python执行系统命令后获取返回值的几种方式集合 今天小编就为大家分享一篇python执行系统命令后获取返回值的几种方式集合,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 第一种情 ...
- Python执行系统命令的方法 os.system(),os.popen(),commands
os.popen():用python执行shell的命令,并且返回了结果,括号中是写shell命令 Python执行系统命令的方法: https://my.oschina.net/renwofei42 ...
- windows linux 使用python执行系统命令并将结果保存到变量
最近需要用到os.system 发现不能赋值到变量 后查有更新的模块,如下: os.system os.spawn* os.popen* popen2.* commands.* 重新使用content ...
- Python执行系统命令并获得输出的几种方法
[root@a upfc]# ./ffmpeg-linux64-v3.3.1 -i a.mp3 ffmpeg version N-86111-ga441aa90e8-static http://joh ...
- Python执行系统命令:使用subprocess的Popen函数
使用subprocess的Popen函数执行系统命令 参考: http://blog.sina.com.cn/s/blog_8f01450601017dlr.html http://blog.csdn ...
- Python执行系统命令的方法
Python中执行系统命令常见方法有两种: 两者均需 import os (1) os.system # 仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息 system(command) ...
- python执行系统命令后获取返回值
import os, subprocess # os.system('dir') #执行系统命令,没有获取返回值,windows下中文乱码 # result = os.popen('dir') #执行 ...
随机推荐
- 转化欧拉回路(难题)-UESTC-1957励志的猴子
励志的猴子 Time Limit: 1000 MS Memory Limit: 256 MB Submit Status 上图是2013南京亚青会吉祥物圆圆.自从它诞生以来,它就被吐槽为最丑吉 ...
- .net core 微服务通讯组件Orleans的使用与配置
Orleans非常好用 并且支持.net core 社区也非常活跃 Orleans2.0+在国内的教程偏少 多数是1.5版本的教程 在这里写上四篇Orleans教程 目录 1.Orleans的入门教程 ...
- Spring 学习,看松哥这一篇万余字干货就够了!
1. Spring 简介 我们常说的 Spring 实际上是指 Spring Framework,而 Spring Framework 只是 Spring 家族中的一个分支而已.那么 Spring 家 ...
- 使用vsCode配合IAR搭建arm开发环境
众所周知IAR的编辑功能就是个垃圾,但是不得不承认IAR的编译器相当的牛X,经常以稳定可靠而著称,为此我们把VSCODE强大的编辑功能和IAR结合一下来加快我们的开发周期. 一.下载VSCODE并安装 ...
- Python复习第01天---元类底层原理
1.通过元类限制类的名字首字母大写 if not class_name.istitle(): raise TypeError('类的名字首字母需要大写') 2. 控制类中必须要有注释 if not c ...
- 京东云携手HashiCorp,宣布推出Terraform Provider
2019年4月23日消息,京东云携手云基础设施自动化软件的领导者HashiCorp,宣布推出Terraform Provider for JD Cloud,这意味着用户能够在京东云上轻松使用简单模板语 ...
- 【Python进阶】来谈谈几个常用的内置函数
匿名函数(lambda表达式) 在Python中,函数可以算的上是“一等公民”了,我们先回顾下函数的优点: 减少代码重复量 模块化代码 但是我们有没有想过,如果我们需要一个函数,比较简短,而且只需要使 ...
- Android动态添加碎片
我们编写一个能够用过按钮动态更替碎片的APP,首先在主页上显示第一个碎片,点击按钮后可以替换到第二个碎片,或者删除已经替换掉的第二个碎片. 一.MainActivity.java import and ...
- npm 镜像配置
npm 默认 registry:https://registry.npmjs.org/ npm中文文档:https://www.npmjs.cn 淘宝 NPM 镜像:https://npm.ta ...
- Django的Form验证(2)
Django的Form验证(2) Form的含义及作用: 用于验证用户请求数据合法性的一个组件(校验数据的合法性) Django的Form实现步骤: 创建一个验证用户请求的模板 from django ...