简介
Python 执行系统命令有很多种方法,下面给出了常见的四种方式。
os.system
os.system 直接调用标准 C 的 system() 函数,仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息,返回脚本的退出状态码。
用于测试的 shell 脚本 test.sh
echo "Hello World!!!" |
测试
import os |
该方法在调用完 shell 脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码,高位为脚本的退出状态码。 返回的结果都是0(使用位运算向右位移8位得到的结果就是高位值),代表代码正常退出。我们如果需要的到脚本执行后返回的状态码,可以使用位运算得到。
os.popen
这种调用方法是通过管道的方式来实现的,函数返回一个 file-like 的对象,里面的内容是脚本输出的内容(可以简单的理解为 echo 的输出内容)。
用于测试的 shell 脚本 test.sh
echo "Hello World!!!" |
测试
import os |
commands 模块
1. getstatusoutput(cmd)
使用 os.popen() 执行命令 cmd ,然后返回两个元素的元组(status, result)。执行方式: { cmd; } 2>&1 ,返回结果里包含标准输出和标准错误。
2. getoutput(cmd)
只返回执行的结果,忽略状态码。
3. getstatus(file)
返回 ls -ld file 执行的结果
测试
import commands |
subprocess 模块
功能强大的子进程管理模块。
测试
import subprocess |