Python中执行cmd
- 使用os.system()方法
示例代码:
# coding:utf-8import osos.system("ls")
PS:os.system()方法是简单粗暴的执行cmd指令,没有办法获取到cmd输出的内容。
PPS:os.system()方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码,高位为脚本的退出状态码,即脚本中“exit 1”的代码执行后,os.system函数返回值的高位数则是1,如果低位数是0的情况下,则函数的返回值是0x0100,换算为十进制得到256。
- 使用os.popen()方法
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()方法是非阻塞的。
- 使用subprocess.Popen()
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)
【Python中执行cmd】PS:subprocess提供了2种方法调用子程序。subprocess.call()是阻塞式的,subprocess.Popen()是非阻塞的。
推荐阅读
- 热闹中的孤独
- CVE-2020-16898|CVE-2020-16898 TCP/IP远程代码执行漏洞
- Shell-Bash变量与运算符
- JS中的各种宽高度定义及其应用
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 深入理解Go之generate
- 异地恋中,逐渐适应一个人到底意味着什么()
- 我眼中的佛系经纪人
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售
- “成长”读书社群招募