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简单文本处理的方法
Jul 10 Python
Python 实现链表实例代码
Apr 07 Python
python批量赋值操作实例
Oct 22 Python
解决pycharm运行程序出现卡住scanning files to index索引的问题
Jun 27 Python
python中列表的切片与修改知识点总结
Jul 23 Python
Django如何实现网站注册用户邮箱验证功能
Aug 14 Python
django实现HttpResponse返回json数据为中文
Mar 27 Python
Python批量处理csv并保存过程解析
May 16 Python
在主流系统之上安装Pygame的方法
May 20 Python
Python selenium使用autoIT上传附件过程详解
May 26 Python
Python 实现一个简单的web服务器
Jan 03 Python
Numpy中的数组搜索中np.where方法详细介绍
Jan 08 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 获取当前访问的url文件名的方法小结
2010/02/08 PHP
提高php运行速度的一些小技巧分享
2012/07/03 PHP
微信公众平台开发之天气预报功能
2015/08/31 PHP
PHP使用第三方即时获取物流动态实例详解
2017/04/27 PHP
php实现留言板功能(会话控制)
2017/05/23 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
javascript new 需不需要继续使用
2009/07/02 Javascript
一个js拖拽的效果类和dom-drag.js浅析
2010/07/17 Javascript
js Select下拉列表框进行多选、移除、交换内容的具体实现方法
2013/08/13 Javascript
基于javascript滚动图片具体实现
2013/11/18 Javascript
js弹出div并显示遮罩层
2014/02/12 Javascript
百度判断手机终端并自动跳转js代码及使用实例
2014/06/11 Javascript
jquery插件uploadify实现带进度条的文件批量上传
2015/12/13 Javascript
AngularJS的依赖注入实例分析(使用module和injector)
2017/01/19 Javascript
在点击div中的p时,如何阻止事件冒泡
2017/02/07 Javascript
JavaScript实现简单的四则运算计算器完整实例
2017/04/28 Javascript
微信小程序利用co处理异步流程的方法教程
2017/05/20 Javascript
jQuery EasyUI的TreeGrid查询功能实现方法
2017/08/08 jQuery
JavaScript贪吃蛇小组件实例代码
2017/08/20 Javascript
vue路由跳转时判断用户是否登录功能的实现
2017/10/26 Javascript
Angular项目从新建、打包到nginx部署全过程记录
2017/12/09 Javascript
基于vue-cli、elementUI的Vue超简单入门小例子(推荐)
2019/04/17 Javascript
iview的table组件自带的过滤器实现
2019/07/12 Javascript
JS数组方法concat()用法实例分析
2020/01/18 Javascript
纯js+css实现在线时钟
2020/08/18 Javascript
js 实现碰撞检测的示例
2020/10/28 Javascript
[52:08]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第一局
2016/03/05 DOTA
详解Django中的form库的使用
2015/07/18 Python
在Python中使用正则表达式的方法
2015/08/13 Python
selenium+python设置爬虫代理IP的方法
2018/11/29 Python
Jupyter notebook如何实现指定浏览器打开
2020/05/13 Python
python调用有道智云API实现文件批量翻译
2020/10/10 Python
你常见到的runtime exception
2016/09/05 面试题
个人四风问题对照检查材料
2014/09/26 职场文书
开除员工通知
2015/04/22 职场文书
员工年度工作总结2015
2015/05/18 职场文书