Python如何使用OS模块调用cmd


Posted in Python onFebruary 27, 2020

在os模块中提供了两种调用 cmd 的方法,os.popen() 和 os.system()

os.system(cmd) 是在执行command命令时需要打开一个终端,并且无法保存command命令的执行结果。

os.popen(cmd,mode) 打开一个与command进程之间的管道。返回值是一个文件对象,可以读或者写(由mode决定,默认是'r')。如果mode为'r',可以使用此函数的返回值调用read()来获取command命令的执行结果。

os.system()

定义:

def system(*args, **kwargs): # real signature unknown
  """ Execute the command in a subshell. """
  pass

简单的来说就是在shell中执行command命令

示例:

(venv) C:\Users\TynamYang>python
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import os
>>> cmd = 'echo "I am tynam"'
>>> os.system(cmd)
"I am tynam"
>>>

os.popen()

定义:

# Supply os.popen()
def popen(cmd, mode="r", buffering=-1):
  if not isinstance(cmd, str):
    raise TypeError("invalid cmd type (%s, expected string)" % type(cmd))
  if mode not in ("r", "w"):
    raise ValueError("invalid mode %r" % mode)
  if buffering == 0 or buffering is None:
    raise ValueError("popen() does not support unbuffered streams")
  import subprocess, io
  if mode == "r":
    proc = subprocess.Popen(cmd,
                shell=True,
                stdout=subprocess.PIPE,
                bufsize=buffering)
    return _wrap_close(io.TextIOWrapper(proc.stdout), proc)
  else:
    proc = subprocess.Popen(cmd,
                shell=True,
                stdin=subprocess.PIPE,
                bufsize=buffering)
    return _wrap_close(io.TextIOWrapper(proc.stdin), proc)

也是在shell中执行command命令,但是返回的结果却是一个文件对象,可以对其读写

其中的三个参数含义:

command -- 执行的shell命令

mode -- 模式权限,读(‘r')或者写(‘w'),默认为读(‘r')

bufsize -- 如果将缓冲值设置为0则不会进行缓冲。 如果缓冲值为1则在访问文件时将执行行缓冲。 如果将缓冲值设置为大于1的整数则以设置的缓冲大小执行缓冲操作。 如果为负则缓冲区大小为系统默认值(默认行为)。

示例:

>>> import os
>>> cmd = 'echo "I am tynam"'
>>> f = os.popen(cmd, 'r')
>>> f.read()
'"I am tynam"\n'
>>>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python  连接字符串(join %)
Sep 06 Python
跟老齐学Python之使用Python查询更新数据库
Nov 25 Python
python使用三角迭代计算圆周率PI的方法
Mar 20 Python
Python基于多线程实现抓取数据存入数据库的方法
Jun 22 Python
Python 变量类型详解
Oct 10 Python
值得收藏,Python 开发中的高级技巧
Nov 23 Python
Python实现简易过滤删除数字的方法小结
Jan 09 Python
python中如何使用分步式进程计算详解
Mar 22 Python
Pandas之Dropna滤除缺失数据的实现方法
Jun 25 Python
Python英文文章词频统计(14份剑桥真题词频统计)
Oct 13 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
Jun 03 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
Nov 17 Python
python之生成多层json结构的实现
Feb 27 #Python
Python查找不限层级Json数据中某个key或者value的路径方式
Feb 27 #Python
python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法
Feb 27 #Python
使用 Python 在京东上抢口罩的思路详解
Feb 27 #Python
Python 格式化打印json数据方法(展开状态)
Feb 27 #Python
python实现提取str字符串/json中多级目录下的某个值
Feb 27 #Python
python 使用递归实现打印一个数字的每一位示例
Feb 27 #Python
You might like
学习使用curl采集curl使用方法
2012/01/11 PHP
jquery+thinkphp实现跨域抓取数据的方法
2016/10/15 PHP
php中str_pad()函数用法分析
2017/03/28 PHP
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
2011/07/04 Javascript
简单实用的反馈表单无刷新提交带验证
2013/11/15 Javascript
javascript Event对象详解及使用示例
2013/11/22 Javascript
js读取被点击次数的简单实例(从数据库中读取)
2014/03/07 Javascript
3个可以改善用户体验的AngularJS指令介绍
2015/06/18 Javascript
javascript中setTimeout使用指南
2015/07/26 Javascript
原生JS实现仿淘宝网左侧商品分类菜单效果代码
2015/09/10 Javascript
JS闭包、作用域链、垃圾回收、内存泄露相关知识小结
2016/05/16 Javascript
jQuery Ztree行政地区树状展示(点击加载)
2016/11/09 Javascript
Vue插件写、用详解(附demo)
2017/03/20 Javascript
关于jQuery里prev()的简单操作代码
2017/10/27 jQuery
Vue组件通信之Bus的具体使用
2017/12/28 Javascript
一个小时快速搭建微信小程序的方法步骤
2019/04/15 Javascript
webpack常用配置总览(小结)
2019/11/18 Javascript
浅谈vuex为什么不建议在action中修改state
2020/02/02 Javascript
[02:16]DOTA2英雄基础教程 干扰者
2014/01/15 DOTA
python数据库操作常用功能使用详解(创建表/插入数据/获取数据)
2013/12/06 Python
对Python正则匹配IP、Url、Mail的方法详解
2018/12/25 Python
Python实现一个数组除以一个数的例子
2019/07/20 Python
手把手教你Python yLab的绘制折线图的画法
2019/10/23 Python
python 实现矩阵按对角线打印
2019/11/29 Python
django 实现手动存储文件到model的FileField
2020/03/30 Python
利用Python自动化操作AutoCAD的实现
2020/04/01 Python
Django中使用Json返回数据的实现方法
2020/06/03 Python
基于opencv的selenium滑动验证码的实现
2020/07/24 Python
找到不普通的东西:Bonanza
2016/10/20 全球购物
英国儿童设计师服装和玩具购物网站:Zac & Lulu
2020/10/19 全球购物
法学毕业生自我鉴定
2014/01/31 职场文书
电子专业毕业生自荐信
2014/05/25 职场文书
小学师德标兵先进事迹材料
2014/05/25 职场文书
幼儿园见习报告范文
2014/10/30 职场文书
九寨沟导游词
2015/02/02 职场文书
2015年清明节扫墓演讲稿
2015/03/18 职场文书