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的面向对象思想分析
Jan 14 Python
python以环状形式组合排列图片并输出的方法
Mar 17 Python
用Python实现一个简单的能够发送带附件的邮件程序的教程
Apr 08 Python
python开发之thread线程基础实例入门
Nov 11 Python
Python中的迭代器与生成器高级用法解析
Jun 28 Python
用TensorFlow实现lasso回归和岭回归算法的示例
May 02 Python
对python3 中方法各种参数和返回值详解
Dec 15 Python
Python跳出多重循环的方法示例
Jul 03 Python
Python使用itchat 功能分析微信好友性别和位置
Aug 05 Python
tensorflow模型保存、加载之变量重命名实例
Jan 21 Python
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
Feb 10 Python
Python机器学习之逻辑回归
May 11 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中实现Javascript的escape()函数代码
2010/08/08 PHP
PHP的加密方式及原理
2012/06/14 PHP
又一个PHP实现的冒泡排序算法分享
2014/08/21 PHP
ThinkPHP3.2.3框架邮件发送功能图文实例详解
2019/04/23 PHP
基于jquery的用鼠标画出可移动的div
2012/09/06 Javascript
AngularJS入门知识之MVW类框架的编程思想探讨
2014/12/08 Javascript
js+css实现超简洁的二级下拉菜单效果代码
2015/09/07 Javascript
基于jQuery插件实现点击小图显示大图效果
2016/05/11 Javascript
Angularjs中$http以post请求通过消息体传递参数的实现方法
2016/08/05 Javascript
js图片上传前预览功能(兼容所有浏览器)
2016/08/24 Javascript
JavaScript实现自动切换图片代码
2016/10/11 Javascript
Canvas实现放射线动画效果
2017/02/15 Javascript
js判断PC端与移动端跳转
2020/12/24 Javascript
JS实现隔行换色的表格排序
2017/03/27 Javascript
理解Angular的providers给Http添加默认headers
2017/07/04 Javascript
深入理解React中何时使用箭头函数
2017/08/23 Javascript
关于Ajax的原理以及代码封装详解
2017/09/08 Javascript
微信运维交互机器人的示例代码
2018/11/12 Javascript
在vs code 中如何创建一个自己的 Vue 模板代码
2020/11/10 Javascript
[01:08:09]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第二局
2016/03/02 DOTA
[52:03]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第三场 1月31日
2021/03/11 DOTA
python实现微信自动回复功能
2018/04/11 Python
Python目录和文件处理总结详解
2019/09/02 Python
Django项目创建到启动详解(最全最详细)
2019/09/07 Python
Python SELENIUM上传文件或图片实现过程
2019/10/28 Python
基于Python实现视频的人脸融合功能
2020/06/12 Python
python语言中有算法吗
2020/06/16 Python
css3图片边框border-image的用法
2017/06/30 HTML / CSS
韩国知名的家庭购物网站:CJmall
2016/08/01 全球购物
国贸专业的职业规划范文
2014/01/23 职场文书
《三峡》教学反思
2014/03/01 职场文书
物理系毕业生自荐书
2014/06/13 职场文书
2015年医德考评自我评价
2015/03/03 职场文书
简爱读书笔记
2015/06/26 职场文书
导游词之山西-五老峰
2019/10/07 职场文书
详解MindSpore自定义模型损失函数
2021/06/30 Python