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 相关文章推荐
在Django的form中使用CSS进行设计的方法
Jul 18 Python
python通过加号运算符操作列表的方法
Jul 28 Python
详解Python验证码识别
Jan 25 Python
Python实现的中国剩余定理算法示例
Aug 05 Python
python去掉 unicode 字符串前面的u方法
Oct 21 Python
Django的models中on_delete参数详解
Jul 16 Python
Python+OpenCV实现实时眼动追踪的示例代码
Nov 11 Python
Python代码生成视频的缩略图的实例讲解
Dec 22 Python
关于tensorflow的几种参数初始化方法小结
Jan 04 Python
Python urlopen()和urlretrieve()用法解析
Jan 07 Python
tensorflow 分类损失函数使用小记
Feb 18 Python
python函数调用,循环,列表复制实例
May 03 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
PHP 高级课程笔记 面向对象
2009/06/21 PHP
PHP简单的MVC框架实现方法
2015/12/01 PHP
PHP中如何判断exec函数执行成功?
2016/08/04 PHP
php基于SQLite实现的分页功能示例
2017/06/21 PHP
Yii2.0实现的批量更新及批量插入功能示例
2019/01/29 PHP
prototype Element学习笔记(篇一)
2008/10/26 Javascript
ASP.NET jQuery 实例16 通过控件CustomValidator验证RadioButtonList
2012/02/03 Javascript
JavaScript自定义方法实现trim()、Ltrim()、Rtrim()的功能
2013/11/03 Javascript
js网页滚动条滚动事件实例分析
2015/05/05 Javascript
老司机带你解读jQuery插件开发流程
2016/05/16 Javascript
JavaScript中关于iframe滚动条的去除和保留
2016/11/17 Javascript
Vue + Webpack + Vue-loader学习教程之相关配置篇
2017/03/14 Javascript
浅谈Node.js轻量级Web框架Express4.x使用指南
2017/05/03 Javascript
利用Javascript实现一套自定义事件机制
2017/12/14 Javascript
vue中的数据绑定原理的实现
2018/07/02 Javascript
angularjs $http调用接口的方式详解
2018/08/13 Javascript
详解JSON.stringify()的5个秘密特性
2020/05/26 Javascript
JavaScript函数柯里化实现原理及过程
2020/12/02 Javascript
[58:12]Ti4第二日主赛事败者组 LGD vs iG 3
2014/07/21 DOTA
[41:41]TFT vs Secret Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
[07:06]2018DOTA2国际邀请赛寻真——卫冕冠军Team Liquid
2018/08/10 DOTA
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
2019/10/11 Python
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
2020/05/27 Python
GNC健安喜美国官网:美国第一营养品牌
2016/07/22 全球购物
英国最大的专业户外零售商:Mountain Warehouse
2018/06/06 全球购物
工厂厂长岗位职责
2013/11/08 职场文书
精细化工应届生求职信
2013/11/17 职场文书
简历中求职的个人自我评价
2013/12/03 职场文书
大学生党员自我剖析材料
2014/10/06 职场文书
刑事法律意见书
2015/06/04 职场文书
植物园观后感
2015/06/11 职场文书
2015年教导处教学工作总结
2015/07/22 职场文书
七年级思品教学反思
2016/02/20 职场文书
2016年“12.4”法制宣传日活动总结
2016/04/01 职场文书
互联网创业商业模式以及赚钱法则有哪些?
2019/10/12 职场文书
Mysql事务索引知识汇总
2022/03/17 MySQL