Python 使用OS模块调用 cmd

news2025/1/8 5:39:29

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

在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'
>>>

尾语

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

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

汽车ECU的虚拟化技术初探(一)

目录 1.为什么要提汽车ECU的虚拟化? 2.虚拟化技术分类 2.1 硬件虚拟化 2.2 操作系统虚拟化 问题引入: Hypervisor是如何来管理和隔离硬件资源,保证各个不同功能的应用程序的资源使用安全和资源调度?没有MMU就做不了虚拟化&am…

【集简云调度影刀RPA】

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

Ubuntu虚拟机设置静态IP

目录 1 确定网络信息2 配置网络文件3 更新配置4 验证 网上很多方案都是 sudo vi /etc/network/interfaces 但是在Ubuntu20.04中我的目录i已经没有这个文件夹了,好像就算自己新建通过这种方式也是不能达到静态ip的目的。整理了下面的这种方式,实测最终有效…

2.OpenResty系列之Lua入门

1. Lua简介 Lua是一种轻量级的、高效的脚本编程语言,最初由巴西里约热内卢天主教大学的一个研究小组开发和发布。Lua的设计目标是提供一个简单、可嵌入、可扩展的脚本语言,官方实现完全采用 ANSI C 编写,能以 C 程序库的形式嵌入到其他应用程…

基于JavaWeb的网上体育商城的设计与实现

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。你想解决的问题,今天给大家介绍…

在以TAB为首地址的字存储区中存放有N个无符号数,试统计低3位全为1的数的个数(个数设为≤9),并显示。

;默认认采用ML6.11汇编程序 DATAS SEGMENT;此处输入数据段代码TAB DW -7,7,15,20,21N($-TAB)/2;G DW 0 DATAS ENDS STACKS SEGMENT;此处处输入堆栈段代码; DB 200 DUP(0) STACKS ENDS CODES SEGMENTASSUME CS:CODES,DS: DATAS, SS:STACKS START:MOV AX, DATASMOV DS,AX;此处输入…

JavaScript从入门到精通系列第三十四篇:基于JavaScript实现邮件正则

文章目录 一:电子邮件正则 1:电子邮件规则 2:编写代码校验 大神链接:作者有幸结识技术大神孙哥为好友,获益匪浅。现在把孙哥视频分享给大家。 孙哥链接:孙哥个人主页 作者简介:一个颜值99分&…

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

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

链表经典OJ题(链表回文结构,链表带环,链表的深拷贝)

目录 前言 1.反转一个单链表。 2. 给定一个带有头结点 head 的非空单链表,返回链表的中间结点。 3.链表的回文结构。 4.链表带环问题(*****) 4.1是否带环 4.2 入环的节点 5.随机链表的复制(链表的深拷贝) 前言…

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

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

亚马逊云AI应用科技创新下的Amazon SageMaker使用教程

目录 Amazon SageMaker简介 Amazon SageMaker在控制台的使用 模型的各项参数 pytorch训练绘图部分代码 Amazon SageMaker简介 亚马逊SageMaker是一种完全托管的机器学习服务。借助 SageMaker,数据科学家和开发人员可以快速、轻松地构建和训练机器学习模型&#…

基于STM32单片机抢答器设计

**单片机设计介绍, 基于STM32单片机抢答器设计-Proteus仿真 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于STM32单片机的抢答器设计可以用于教育和培训场景中的抢答游戏或考试环节。以下是一个基本的介绍设计步骤…

翻译环境(编译和链接)(简单讲解,理解图就行)

前言 这是我们学习代码的最重要的一个知识点之一,因为我们要去运行一个代码并不是简单的去直接出结果,而是经过了很多我们看不到的步骤,我们在这里以C语言为例子在Linux的环境下讲解,大家没有学过Linux的不用担心,最后…

creo6.0教程之旋转,扫描

目录 一、旋转:二、扫描: 一、旋转: 案例1:旋转一个球: 任意一个平面绘制草图: 确定草图后,然后退出草图,点击旋转: 案例2:旋转一个杯子雏形: …

Clickhouse学习笔记(11)—— 数据一致性

使用合并树引擎时,无论是ReplacingMergeTree还是SummingMergeTree,都只能保证数据的最终一致性,因为数据的去重、聚合等操作会在数据合并的期间进行,而合并会在后台以一个不确定的时间进行,因此无法预先计划&#xff1…

【Redis】redis的下载安装

目录 1.window安装 2.Linux安装 下载 解压 移动redis目录 编译 1.window安装 在github 下载redis的安装包 https://github.com/microsoftarchive/redis/releases 下载完后安装相应的目录下,比如我是放在c盘的Program Files下 开启redis,双击运行…

Java必刷入门递归题×5(内附详细递归解析图)

目录 1.求N的阶乘 2.求12...N的和 3.顺序打印数字的每一位 4.求数字的每一位之和 5.求斐波拉契数列 1.求N的阶乘 (1)解析题目意思 比如求5的阶乘,符号表示就是5!;所以5!5*4*3*2*1我们下面使用简单的…

C++套接字库sockpp介绍

sockpp是一个开源、简单、现代的C套接字库,地址为:https://github.com/fpagliughi/sockpp,最新发布版本为0.8.1,license为BSD-3-Clause。目前支持Linux、Windows、Mac上的IPv4、IPv6和Unix域套接字。其它*nix和POSIX系统只需很少的…

冯·诺伊曼体系结构--操作系统

文章目录 1.认识冯诺依曼系统1.1约翰冯诺依曼1.2冯诺依曼结构1.3存储器的读写速度1.4对冯诺依曼结构的认识1.5冯诺依曼结构在生活中的演示 2.操作系统--“搞管理”的软件2.1概念2.2OS存在的意义2.3管理的方式2.4系统调用和库函数概念 1.认识冯诺依曼系统 1.1约翰冯诺依曼 1.2冯…

【论文】利用移动性的比例公平蜂窝调度测量和算法

(一支笔一包烟,一节论文看一天 )(一张纸一瓶酒,一道公式推一宿) 摘要1. 引言2. 相关工作3. 模型和问题公式4. 预测FPF调度 ( P F ) 2 S (PF)^2S (…