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 28 Python
python压缩文件夹内所有文件为zip文件的方法
Jun 20 Python
python 生成器生成杨辉三角的方法(必看)
Apr 10 Python
浅谈使用Python变量时要避免的3个错误
Oct 30 Python
python字典快速保存于读取的方法
Mar 23 Python
使用Python和Scribus创建一个RGB立方体的方法
Jul 17 Python
在django admin中添加自定义视图的例子
Jul 26 Python
处理python中多线程与多进程中的数据共享问题
Jul 28 Python
Python 实用技巧之利用Shell通配符做字符串匹配
Aug 23 Python
python绘制规则网络图形实例
Dec 09 Python
使用python求斐波那契数列中第n个数的值示例代码
Jul 26 Python
如何将json数据转换为python数据
Sep 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/08/08 PHP
php用数组返回无限分类的列表数据的代码
2010/08/08 PHP
使用XDebug调试及单元测试覆盖率分析
2011/01/27 PHP
php获取文章内容第一张图片的方法示例
2017/07/03 PHP
使用PHP+MySql实现微信投票功能实例代码
2017/09/29 PHP
jQuery timers计时器简单应用说明
2010/10/28 Javascript
读JavaScript DOM编程艺术笔记
2011/11/15 Javascript
LABjs、RequireJS、SeaJS的区别
2014/03/04 Javascript
学习JavaScript设计模式之模板方法模式
2016/01/20 Javascript
Vue组件中prop属性使用说明实例代码详解
2018/05/31 Javascript
vue与原生app的对接交互的方法(混合开发)
2018/11/28 Javascript
jQuery实现全选、反选和不选功能的方法详解
2019/12/04 jQuery
vue element ui validate 主动触发错误提示操作
2020/09/21 Javascript
python 正则表达式 概述及常用字符
2009/05/04 Python
使用IronPython把Python脚本集成到.NET程序中的教程
2015/03/31 Python
Python 字符串大小写转换的简单实例
2017/01/21 Python
浅谈Python peewee 使用经验
2017/10/20 Python
对python中list的拷贝与numpy的array的拷贝详解
2019/01/29 Python
Django如何开发简单的查询接口详解
2019/05/17 Python
python numpy 常用随机数的产生方法的实现
2019/08/21 Python
Python使用正则实现计算字符串算式
2019/12/29 Python
python如何导入依赖包
2020/07/13 Python
PyCharm2020.1.2社区版安装,配置及使用教程详解(Windows)
2020/08/07 Python
python使用re模块爬取豆瓣Top250电影
2020/10/20 Python
纯CSS3打造动感漂亮时尚的扇形菜单
2014/03/18 HTML / CSS
英国花园药房: The Garden Pharmacy
2017/12/28 全球购物
Java里面如何创建一个内部类的实例
2015/01/19 面试题
技校个人求职信范文
2014/01/25 职场文书
企业诚信承诺书
2014/05/23 职场文书
2014年检验员工作总结
2014/11/19 职场文书
成品仓库管理员岗位职责
2015/04/09 职场文书
2015年党风廉政建设工作总结
2015/04/09 职场文书
干部培训工作总结2015
2015/05/25 职场文书
运动会宣传稿50字
2015/07/23 职场文书
2016年心理学教育培训学习心得体会
2016/01/12 职场文书
Python获取指定日期是"星期几"的6种方法
2022/03/13 Python