Python 使用OS模块调用 cmd

嗨喽,大家好呀~这里是爱看美女的茜茜呐

在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命令

示例:

'''
python资料获取看这里噢!! 小编 V:Pytho8987(记得好友验证备注:6 否则可能不通过)
即可获取:文章源码/教程/资料/解答等福利,还有不错的视频学习教程和PDF电子书!
'''
(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"
0
>>>

os.popen()

定义:

'''
python资料获取看这里噢!! 小编 V:Pytho8987(记得好友验证备注:6 否则可能不通过)
即可获取:文章源码/教程/资料/解答等福利,还有不错的视频学习教程和PDF电子书!
'''
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'
>>>

尾语

感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/135391.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JuCheap开发的微信小程序商城(NetCore商城)

一、目的 最近工作需要,在学习微信小程序的开发,用周末空闲时间开发了一个微信小程序商城。 二、功能 2.1 管理后台 管理后台是基于JuCheap开发的,使用Net6Vue3ElementPlus开发,具体功能包含如下: 2.1.1 店铺模块…

环形链表解析(c语言)c语言版本!自我解析(看了必会)

目录 1.判断一个表是否是环形链表! 代码如下 解析如下 2.快指针的步数和慢指针的步数有什么影响(无图解析) 3.怎么找到环形链表的入环点 代码如下 解析如下 1.判断一个表是否是环形链表! 代码如下 bool hasCycle(struct L…

[ARM入门]ARM模式及其切换、异常

ARM技术特征 ARM处理器有如下特点 体积小、功耗低、成本低、性能高支持Thumb(16位)/ARM(32位)双指令集,能很好地兼容8位/16位器件大量使用寄存器,指令执行速度更快大多数数据操作都在寄存器中完成寻址方式…

【Java】Java8 Function 和 Consumer 接口的使用场景

文章目录 前言1. Function 示例2. Function 介绍3. Consumer 示例4. Consumer 介绍5. Function 和 Consumer 接口的使用场景后记 前言 在 《精通Java8》一书中有讲过 Java8的函数式接口可以简化设计模式的实施,这里记录一下Function 和 Consumer 的使用场景。 1. …

Docker从零开始学习,及常用命令大全(附带代码讲解)

Docker从零开始,及常用命令大全(附带代码讲解) docker是一种开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。…

【集简云调度影刀RPA】

集简云调度影刀 集简云的http请求,都是用webhook。 1、获取token的时候,在url中必须这么填,在数据或者headers里面填写keyID和密码不管用。 2.调起应用的时候,需要选择webhook中的post,自定义的请求,才能…

二叉树的遍历(先序,中序,后序,层序)

目录 1.先序遍历1.代码实现 2.中序遍历1.代码实现 3.后序遍历1.代码实现 4.遍历算法的应用5.层序遍历1.算法思想2.代码实现 6.由遍历序列构造二叉树 1.先序遍历 根左右。 1.代码实现 若二叉树为空,则什么也不做; 若二叉树非空: ①访问根结点; ②先序遍历左子树; ③先…

如何在Linux服务器上后台持久运行Gunicorn

如何在Linux服务器上后台持久运行Gunicorn **问题概述****解决方案一:使用nohup命令****解决方案二:使用systemd服务****创建systemd服务文件****修改systemd服务文件以使用虚拟环境**日志管理**激活并启动服务:**如何设置用户和组**确认用户…

FPGA高端项目:图像采集+GTX+UDP架构,高速接口以太网视频传输,提供2套工程源码加QT上位机源码和技术支持

目录 1、前言免责声明本项目特点 2、相关方案推荐我这里已有的 GT 高速接口解决方案我这里已有的以太网方案 3、设计思路框架设计框图视频源选择OV5640摄像头配置及采集动态彩条视频数据组包GTX 全网最细解读GTX 基本结构GTX 发送和接收处理流程GTX 的参考时钟GTX 发送接口GTX …

在 WSL 上启用 NVIDIA CUDA

环境要求 Windows 11 或 Windows 10 版本 21H2特定版本的GPU驱动: 安装支持 NVIDIA CUDA 的 WSL 驱动程序: https://www.nvidia.com/download/index.aspx具体安装哪个版本,查阅:https://docs.nvidia.com/cuda/wsl-user-guide/in…

基于Python+Django的图书管理系统

项目介绍 图书是人类文明传播的一个重要方式,很多历史悠久的文明都是通过图书来进行传递的,虽然随着时代的进步电子信息技术发展很快,但是纸质图书的地位仍然是非常稳固的,为了能够让知识拥有更加快捷方便的传递方式我们开发了本…

asp.net员工管理系统VS开发sqlserver数据库web结构c#编程包括出差、请假、考勤

一、源码特点 asp.net员工管理系统是一套完善的web设计管理系统(主要包括出差、请假、考勤基础业务管理),系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010 ,数据库为sqlserver2008&a…

postman设置动态token, 每次登录更新token

postman设置动态token, 每次登录更新token 文章目录 postman设置动态token, 每次登录更新token问题1. 设置全局变量2. 新建登录接口3. 设置脚本4. 切换环境5. 配置动态token 问题 token过期时间一般比较短, 每次使用postman调用接口都token非常麻烦 实现token过期后, 调用一次…

Swift 常用类别整理

生成颜色,传入16进制数字生成对应颜色 个人不喜欢传字符串的写法,比如 "0x0080FF" 或者 "0080FF",原因如下: 传了字符串最后还是要解析成数字参与颜色运算的,需要额外做字符串转数字的操作&…

人工智能领域200例教程专栏—学习人工智能的指南宝典

🎉🎊🎉 你的技术旅程将在这里启航! 🚀 本专栏:人工智能领域200例教程专栏 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 …

Kotlin基础——接口和类

接口 使用 : 表示继承关系&#xff0c;只能继承一个类&#xff0c;但可以实现多个接口override修饰符表示重写可以有默认方法&#xff0c;若父类的默认方法冲突&#xff0c;则需要子类重写&#xff0c;使用super<XXX>.xxx()调用某一父类方法 interface Focusable {fun …

Rt-Thread 移植6--多线程(KF32)

6.1 就绪列表 6.1.1 线程就绪优先级组 线程优先级表的索引对应的线程的优先级。 为了快速的找到线程在线程优先级表的插入和移出的位置&#xff0c;RT-Thread专门设计了一个线程就绪优先级组。线程就绪优先组是一个32位的整型数&#xff0c;每一个位对应一个优先级&#xff…

Spark算子

一、编写spark程序的准备工作&#xff08;程序入口 SparkContext&#xff09; 1.创建SparkConf val conf new SparkConf().setMaster("local[2]").setAppName("hello-app") 2.创建sparkContext val sc: SparkContext new SparkContext(conf) 二、基…

可视化 | echarts饼图改编

echarts模板来源 &#x1f4da;改编点 &#x1f407;基本样式 去掉legend、label&#xff1a;show: false背景透明&#xff1a;backgroundColor: "transparent"去除功能标签添加载入动态animationEasing: elasticOut, animationDelay: function (idx) {return Mat…