python 执行系统命令(os.system、os.popen、commands、subprocess)

1、os.system

即:在一个子终端运行系统命令,不能获取命令执行后的返回信息。

os.system(cmd)的返回值。如果执行成功,那么会返回0,表示命令执行成功。否则,则是执行错误。

1 import os
2 result = os.system('ls')
3 print(result)      # 0

2、os.popen

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

os.popen() 返回的是 file read 的对象,对其进行读取 read() 、readline()、readlines()等操作可以看到执行的输出。

1 import os
2 result = os.popen('ls')
3 print(result.read())

3、commands

commands模块在Python3中已废弃。

4、subprocess

Subprocess是一个功能强大的子进程管理模块,是替换os.system方法的一个模块。

当执行命令的参数或者返回中包含了中文文字,那么建议使用subprocess。

1 import subprocess
2 res = subprocess.Popen('ls', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) # 使用管道
3 # print res.stdout.read()  # 标准输出
4 for line in res.stdout.readlines():
5     print line
6 res.stdout.close()         # 关闭

 

总结:

os.system:获取程序执行命令的返回值。

os.popen: 获取程序执行命令的输出结果。

 

 

posted @ 2022-07-06 16:31  小嘉欣  阅读(1264)  评论(0编辑  收藏  举报