在Python中执行cmd
目录
- 1、使用os.system()方法
- 2、使用os.popen()方法
- 3、使用subprocess.Popen()
1、使用os.system()方法
os.system
用来执行cmd指令,在cmd输出的内容会直接在控制台输出,返回结果为0表示执行成功。示例代码:
# coding:utf-8import osos.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-8import 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-8import subprocessp = subprocess.Popen("ls", shell=True, stdout=subprocess.PIPE)r = p.stdout.read()print(r)
PS:
subprocess
提供了2种方法调用子程序。subprocess.call()
是阻塞式的,subprocess.Popen()
是非阻塞的。【在Python中执行cmd】到此这篇关于在
Python
中执行cmd的文章就介绍到这了,更多相关Python中执行cmd
内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!推荐阅读
- C#中Invoke的用法讲解
- 微信小程序|微信开发者工具模拟器、IOS真机调试、Android真机调试中Editor效果不一致问题
- visual|微软集成开发者工具到 Visual Studio 中,工具迎来“大换血”()
- 如何为k8s中的pod配置QoS等级()
- Python中的if...else语法和执行流程
- 关于python中if条件语句的实例- 简单版和进阶版
- C|c语言面试题每日一练
- 金融中的AI和机器学习(在银行,保险,投资以及用户体验中的用例)
- 开源|诞生在 KFC 的《开源之迷》(作者如何在嘈杂而开放的环境中进行创作)
- 一篇文章了解c++中的new和delete