下面是关于"python执行系统命令后获取返回值的几种方式集合"的完整攻略。
1. subprocess模块的使用
subprocess
模块是 Python 的一个标准库,用于在 Python 脚本中执行外部程序或命令。 在执行完命令之后,可以获取命令执行的返回值,代码如下:
import subprocess
# 执行命令
p = subprocess.Popen("ls -l /tmp", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# 获取执行结果
out, err = p.communicate()
print(out.decode('utf-8'), err.decode('utf-8'))
# 获取返回值
return_code = p.returncode
print(return_code)
上述代码中,使用 subprocess.Popen
执行 ls -l /tmp
命令。stdout
和 stderr
分别为标准输出和标准错误输出。调用 communicate
方法将输出以二进制字符串方式返回并以元组 (stdout,stderr)
的形式存储。调用 returncode
方法获取命令执行的返回值。
2. os模块的使用
os
模块也提供了执行 shell 命令的方法,具体方法是 os.system
。它会阻塞程序,直到命令执行完毕并将结果输出到屏幕上。在这种情况下,需要将输出存储到变量中,代码如下:
import os
# 执行命令
cmd = 'ls -l /tmp'
return_code = os.system(cmd)
# 获取返回值
print(return_code)
在这里,通过 os.system
执行 ls -l /tmp
命令。返回值为命令的返回值。
示例
以下是两个示例,分别演示如何使用 subprocess
和 os
模块执行外部程序并获取返回值。
示例 1
通过 subprocess
模块执行程序 ls
并获取返回值:
import subprocess
# 执行命令
p = subprocess.Popen("ls -l /tmp", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# 获取执行结果
out, err = p.communicate()
print(out.decode('utf-8'), err.decode('utf-8'))
# 获取返回值
return_code = p.returncode
print(return_code)
这个示例执行 ls -l /tmp
命令,并把执行的结果输出到控制台上。
示例 2
通过 os
模块执行程序 uname
并获取返回值:
import os
# 执行命令
cmd = 'uname -a'
return_code = os.system(cmd)
# 获取返回值
print(return_code)
我们可以看到,上述代码执行 uname -a
命令并把执行的结果输出到控制台上。
希望以上内容能给您带来一些帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python执行系统命令后获取返回值的几种方式集合 - Python技术站