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 解析XML文件
Apr 15 Python
python异步任务队列示例
Apr 01 Python
Python网络编程中urllib2模块的用法总结
Jul 12 Python
Python在线运行代码助手
Jul 15 Python
Python(Django)项目与Apache的管理交互的方法
May 16 Python
python 输入一个数n,求n个数求乘或求和的实例
Nov 13 Python
python用for循环求和的方法总结
Jul 08 Python
五分钟带你搞懂python 迭代器与生成器
Aug 30 Python
pytorch训练神经网络爆内存的解决方案
May 22 Python
Python 如何实现文件自动去重
Jun 02 Python
浅谈Python协程asyncio
Jun 20 Python
仅用几行Python代码就能复制她的U盘文件?
Jun 26 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会话(Session)实现用户登陆功能
2013/06/29 PHP
PHP函数addslashes和mysql_real_escape_string的区别
2014/04/22 PHP
谈谈从phpinfo中能获取哪些值得注意的信息
2017/03/28 PHP
laravel中的一些简单实用功能
2018/11/03 PHP
为你的 Laravel 验证器加上多验证场景的实现
2020/04/07 PHP
PHP使用POP3读取邮箱接收邮件的示例代码
2020/07/08 PHP
HTML TO JavaScript 转换
2006/06/26 Javascript
参考:关于Javascript中实现暂停的几篇文章
2007/03/04 Javascript
JavaScript编程开发中的五个实用小技巧
2010/07/22 Javascript
基于jQuery的仿flash的广告轮播
2010/11/05 Javascript
javascript中检测变量的类型的代码
2010/12/28 Javascript
Javascript执行效率全面总结
2013/11/04 Javascript
SeaJS入门教程系列之完整示例(三)
2014/03/03 Javascript
jquery 按键盘上的enter事件
2014/05/11 Javascript
Javascript URI 解析介绍
2015/03/15 Javascript
jquery左右全屏大尺寸多图滑动效果代码分享
2015/08/28 Javascript
原生javascript实现匀速运动动画效果
2016/02/26 Javascript
jQuery1.9+中删除了live以后的替代方法
2016/06/17 Javascript
bootstrap table配置参数例子
2017/01/05 Javascript
在react项目中使用antd的form组件,动态设置input框的值
2020/10/24 Javascript
python实现根据指定字符截取对应的行的内容方法
2018/10/23 Python
对Python中小整数对象池和大整数对象池的使用详解
2019/07/09 Python
python生成requirements.txt的两种方法
2019/09/18 Python
python实现简单图书管理系统
2019/11/22 Python
Python3 虚拟开发环境搭建过程(图文详解)
2020/01/06 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
2020/04/25 Python
keras model.fit 解决validation_spilt=num 的问题
2020/06/19 Python
Html5游戏开发之乒乓Ping Pong游戏示例(二)
2013/01/21 HTML / CSS
美国睫毛、眉毛精华液领导品牌:RevitaLash Cosmetics
2018/03/26 全球购物
活动策划求职信模板
2014/04/21 职场文书
我的梦想演讲稿500字
2014/08/21 职场文书
酒店温馨提示语
2015/07/14 职场文书
英语教学课后反思
2016/02/15 职场文书
工作总结之小学教师体育工作范文(3篇)
2019/10/07 职场文书
浅谈mysql返回Boolean类型的几种情况
2021/06/04 MySQL
Python使用openpyxl模块处理Excel文件
2022/06/05 Python