Python 执行系统命令的方法

参考 Python中执行系统命令的四种方法

1 os.system 方法

在子终端运行系统命令,可以获取命令执行后的返回信息以及执行返回的状态。执行后返回两行结果,第一行是结果, 第二行是执行状态信息,如果命令成功执行,这条语句返回 0,否则返回 1。

import os
print(os.system('date'))
图1 修改时间

2 os.popen 方法

os.popen() 方法不仅执行命令而且返回执行后的信息对象(常用于需要获取执行命令后的返回信息),是通过一个管道文件将结果返回。

图2 创建文件夹并返回值

os.popen(cmd, mode='r', buffering=-1) 中的 buffering1 意味着行缓冲,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")#字符串参数
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容