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之深入变量和引用对象
Sep 24 Python
Python中类型关系和继承关系实例详解
May 25 Python
解析Python中while true的使用
Oct 13 Python
Python使用BeautifulSoup库解析HTML基本使用教程
Mar 31 Python
使用python为mysql实现restful接口
Jan 05 Python
Django使用httpresponse返回用户头像实例代码
Jan 26 Python
详解python做UI界面的方法
Feb 27 Python
python中format函数如何使用
Jun 22 Python
如何基于Python Matplotlib实现网格动画
Jul 20 Python
python两个list[]相加的实现方法
Sep 23 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
Sep 23 Python
python脚本使用阿里云slb对恶意攻击进行封堵的实现
Feb 04 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获取金书网的书名的实现代码
2010/06/11 PHP
JS中encodeURIComponent函数用php解码的代码
2012/03/01 PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
2013/06/25 PHP
yii框架builder、update、delete使用方法
2014/04/30 PHP
php获取随机数组列表的方法
2014/11/13 PHP
JavaScript中两个感叹号的作用说明
2011/12/28 Javascript
Node.js开发指南中的简单实例(mysql版)
2013/09/17 Javascript
今天是星期几的4种JS代码写法
2013/09/17 Javascript
解析img图片没找到onerror事件 Stack overflow at line: 0
2013/12/23 Javascript
javascript在网页中实现读取剪贴板粘贴截图功能
2014/06/07 Javascript
js的延迟执行问题分析
2014/06/23 Javascript
Web表单提交之disabled问题js解决方法
2015/01/13 Javascript
巧用canvas
2017/01/21 Javascript
jQuery中DOM节点的删除方法总结(超全面)
2017/01/22 Javascript
js放到head中失效的原因与解决方法
2017/03/07 Javascript
Javascript 一些需要注意的细节(必看篇)
2017/07/08 Javascript
jQuery实现节点的追加、替换、删除、复制功能示例
2017/07/11 jQuery
浅谈ng-zorro使用心得
2018/12/03 Javascript
微信小程序开发实现消息推送
2020/11/18 Javascript
python复制文件代码实现
2013/12/23 Python
Python复制目录结构脚本代码分享
2015/03/06 Python
仅用50行Python代码实现一个简单的代理服务器
2015/04/08 Python
利用selenium爬虫抓取数据的基础教程
2019/06/10 Python
python破解bilibili滑动验证码登录功能
2019/09/11 Python
ipad上运行python的方法步骤
2019/10/12 Python
如何给Python代码进行加密
2020/01/10 Python
Python基于mediainfo批量重命名图片文件
2020/12/29 Python
利用css3制作3D样式按钮实现代码
2013/03/18 HTML / CSS
可能这些是你想要的H5软键盘兼容方案(小结)
2019/04/23 HTML / CSS
美国儿童运动鞋和服装零售商:Kids Foot Locker
2017/08/05 全球购物
市场营销专科应届生求职信
2013/11/24 职场文书
网络工程师专家职业发展路线
2014/02/14 职场文书
公交公司毕业生求职信
2014/02/15 职场文书
大学生作弊检讨书
2014/09/11 职场文书
教师自我剖析材料(群众路线)
2014/09/29 职场文书
护理医院见习报告
2014/11/03 职场文书