在Python中执行cmd
作者:吴尼玛 发布时间:2022-05-20 07:24:50
标签:Python,cmd
1、使用os.system()方法
os.system
用来执行cmd指令,在cmd输出的内容会直接在控制台输出,返回结果为0表示执行成功。
示例代码:
# coding:utf-8
import os
os.system("ls")
PS:os.system()
方法是简单粗暴的执行cmd指令,没有办法获取到cmd
输出的内容。
PPS:os.system()
方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码,高位为脚本的退出状态码,即脚本中“exit 1”的代码执行后,os.system
函数返回值的高位数则是1,如果低位数是0的情况下,则函数的返回值是0x0100,换算为十进制得到256。
2、使用os.popen()方法
os.popen()
方法用于从一个命令打开一个管道。在Unix
,Windows
中有效。os.popen
返回的是一个file对象,同open打开文件一样操作。
popen()方法语法格式如下:
os.popen(command[, mode[, bufsize]])
参数:
command – 使用的命令。
mode – 模式权限可以是 ‘r'(默认) 或 ‘w'。
bufsize – 指明了文件需要的缓冲大小:0意味着无缓冲;1意味着行缓冲;其它正值表示使用参数大小的缓冲(大概值,以字节为单位)。负的bufsize意味着使用系统的默认值,一般来说,对于tty设备,它是行缓冲;对于其它文件,它是全缓冲。如果没有改参数,使用系统的默认值。
示例代码:
# coding:utf-8
import os
# popen返回文件对象,同open操作一样
f = os.popen(r"ls", "r")
l = f.read()
print(l)
f.close()
返回值是文件对象的推荐处理方法:
with os.popen(cmd, "r") as p:
r = p.read()
使用它,不需要显式的写p.close()。
PS:os.popen()
方法是非阻塞的。
3、使用subprocess.Popen()
python2.4
版本后,提供了subprocess
这个模块来产生子进程,并且可以连接到子进程的标准输入、输出、错误中,还可以获得子进程的返回值。
subprocess.Popen()的定义如下:
class subprocess.Popen( args,
bufsize=0,
executable=None,
stdin=None,
stdout=None,
stderr=None,
preexec_fn=None,
close_fds=False,
shell=False,
cwd=None,
env=None,
universal_newlines=False,
startupinfo=None,
creationflags=0)
其参数意义在此不赘述。一段简单的示例代码:
# coding:utf-8
import subprocess
p = subprocess.Popen("ls", shell=True, stdout=subprocess.PIPE)
r = p.stdout.read()
print(r)
PS:subprocess
提供了2种方法调用子程序。subprocess.call()
是阻塞式的,subprocess.Popen()
是非阻塞的。
来源:https://segmentfault.com/a/1190000040734370


猜你喜欢
- 一些基本的操作,在工作者遇到相关问题要有相关印象。一、 你想对浮点数执行指定精度的舍入运算对于简单的舍入运算,使用内置的 round(val
- 关于变量的命名,这又是一个容易引发程序员论战的话题。如何命名才能更具有可读性、易写性与明义性呢?众说纷纭。本期“Python为什么”栏目,我
- 数据类型:float — 浮点数可以精确到小数点后面15位int — 整型可以无限 * ool — 非零为true,零为falselist —
- 前言硬要说这篇文章怎么来的,那得先从那几个吃野味的人开始说起…… 前天睡醒:假期还有几天;昨天睡醒:假期还有十几天;今天睡醒:假期还有一个月
- Go素数筛选分析1. 素数筛选介绍学习Go语言的过程中,遇到素数筛选的问题。这是一个经典的并发编程问题,是某大佬的代码,短短几行代码就实现了
- 一、爬虫的简单理解1. 什么是爬虫?网络爬虫也叫网络蜘蛛,如果把互联网比喻成一个蜘蛛网,那么蜘蛛就是在网上爬来爬去的蜘蛛,爬虫程序通过请求u
- 最近做opencv项目时,使用肤色分割的方法检测目标物体时,背景带来的干扰非常让人头痛。于是先将背景分割出去,将影响降低甚至消除。由于初次接
- 在ASP.net页面中,我们编写JavaScript脚本附加有注释时,这些注释也往往会随JavaScript脚本一起送到客户端。
- 完整卸载MySQL数据库的过程,具体内容如下1、关掉mysql服务右键“我的电脑”,选择“管理”,打开计算机管理,选择“服务”右键MySQL
- Python被誉为全世界高效的编程语言,同时也被称作是“胶水语言”,那它为何能如此受欢迎,下面我们就来说说Python入门学习的必备11个知
- 关于JWT是什么,大家可以看看官网,一句话介绍下:是可以实现服务器无状态的鉴权认证方案,也是目前最流行的跨域认证解决方案。要实现JWT认证,
- GBK简体字符集的编码是同时用1个字节和2个字节来表示的。当高位是0x00~0x7f时,为一个字节,高位为0x80以上时用2个字节表示&qu
- OS ( Operating System 操作系统 ) 操作系统模块;它是属于python的标准库,也就是Python自带的库;它常用于处
- 方法说明: 同步版的fs.writeFile() 。语法:fs.writeFileSync(filename, data, [o
- 前言大家都知道Python内置的常量不多,只有6个,分别是True、False、None、NotImplemented、Ellipsis、_
- package com.groundhog.codingmouse; import java.sql.Connection; import
- Python 登录网站详解及实例对于大部分论坛,我们想要抓取其中的帖子分析,首先需要登录,否则无法查看。这是因为 HTTP 协议是一个无状态
- 如下所示:#统计某文件夹下的所有csv文件的行数(多线程)import threadingimport csvimport osclass
- 简介Python Fire是谷歌开源的一个第三方库,用于从任何Python对象自动生成命令行接口(CLI),可用于如快速拓展成命令行等形式。
- 1、监控规划在创建监控项之前要尽量考虑清楚要监控什么,怎么监控,监控数据如何存储,监控数据如何展现,如何处理报警等。要进行监控的系统规划需要