1 os.system 方法
在子终端运行系统命令,可以获取命令执行后的返回信息以及执行返回的状态。执行后返回两行结果,第一行是结果, 第二行是执行状态信息,如果命令成功执行,这条语句返回 0,否则返回 1。
import os
print(os.system('date'))
2 os.popen 方法
os.popen()
方法不仅执行命令而且返回执行后的信息对象(常用于需要获取执行命令后的返回信息),是通过一个管道文件将结果返回。
os.popen(cmd, mode='r', buffering=-1)
中的 buffering
为 1
意味着行缓冲,0
意味着无缓冲,为负值使用系统默认值。
3 subprocess模块
subprocess 模块运用对线程的控制和监控,将返回的结果赋于变量,便于程序的处理。
subprocess模块是 python 从 2.4 版本开始引入的模块。主要用来取代 一些旧的模块方法,如 os.system、os.spawn、os.popen、commands.* 等。subprocess 通过子进程来执行外部指令,并通过 input/output/error 管道,获取子进程的执行的返回信息。
参考资料:Python3 subprocess
subprocess 模块首先推荐使用的是它的 run
方法,更高级的用法可以直接使用 Popen
接口。比如:
import subprocess
def runcmd(command):
ret = subprocess.run(command,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE,encoding="utf-8",timeout=1)
if ret.returncode == 0:
print("success:",ret)
else:
print("error:",ret)
runcmd(["dir","/b"])#序列参数
runcmd("exit 1")#字符串参数