python执行系统命令后获取返回值的几种方式集合

  • Post category:Python

Python是一种强大的编程语言,它不仅具有自己的函数库,还可以使用系统命令来执行一些操作。本文将为您介绍使用Python执行系统命令后获取返回值的几种方式,包括os.system()、os.popen()、subprocess.call()、subprocess.Popen()和check_output()。

os.system()

os.system()函数可以在Python程序中执行操作系统命令,它返回命令的退出状态。以下是一个os.system()的示例:

import os

status = os.system('ls -l')
print("Exit status:", status)

输出结果:

total 8
-rw-r--r--  1 user  staff   410 Sep  9 16:48 readme.md
-rw-r--r--  1 user  staff  1050 Sep  9 16:49 script.py
Exit status: 0

这里使用了UNIX命令ls -l,在终端上可以列出当前工作目录下的文件和文件夹。在Python程序中,我们使用os.system()函数来执行这个命令,并打印出返回的退出状态。

os.popen()

os.popen()函数也可以执行系统命令并返回输出结果。与os.system()不同的是,os.popen()返回的是一个文件对象,可以用于读取输出结果。以下是一个os.popen()的示例:

import os

output = os.popen('ls -l')
print("Output:\n", output.read())

输出结果:

Output:
 total 8
-rw-r--r--  1 user  staff   410 Sep  9 16:48 readme.md
-rw-r--r--  1 user  staff  1050 Sep  9 16:49 script.py

这里也使用了UNIX命令ls -l,只是在Python程序中使用了os.popen()函数来执行这个命令,并打印出返回的输出结果。

subprocess.call()

subprocess.call()函数也可以执行系统命令,并返回命令的退出状态。以下是一个subprocess.call()的示例:

import subprocess

status = subprocess.call(['ls', '-l'])
print("Exit status:", status)

输出结果:

total 8
-rw-r--r--  1 user  staff   410 Sep  9 16:48 readme.md
-rw-r--r--  1 user  staff  1050 Sep  9 16:49 script.py
Exit status: 0

这里使用了UNIX命令ls -l,在Python程序中使用subprocess.call()函数来执行这个命令,并打印出返回的退出状态。

subprocess.Popen()

subprocess.Popen()函数可以执行系统命令,并返回一个Popen对象,可以使用communicate()方法来获取输出结果。以下是一个subprocess.Popen()的示例:

import subprocess

p = subprocess.Popen(['ls', '-l'], stdout=subprocess.PIPE)
output, error = p.communicate()
print("Output:\n", output.decode('utf-8'))

输出结果:

total 8
-rw-r--r--  1 user  staff   410 Sep  9 16:48 readme.md
-rw-r--r--  1 user  staff  1050 Sep  9 16:49 script.py

这里同样使用了UNIX命令ls -l,在Python程序中使用subprocess.Popen()函数来执行这个命令,并使用communicate()方法获取输出结果。

check_output()

check_output()函数是subprocess模块提供的另一种方法,可以通过执行系统命令并返回输出结果。以下是一个check_output()函数的示例:

import subprocess

output = subprocess.check_output(['ls', '-l'])
print("Output:\n", output.decode('utf-8'))

输出结果:

total 8
-rw-r--r--  1 user  staff   410 Sep  9 16:48 readme.md
-rw-r--r--  1 user  staff  1050 Sep  9 16:49 script.py

这里同样使用了UNIX命令ls -l,在Python程序中使用subprocess.check_output()函数来执行这个命令,并获取输出结果。

总结

本文介绍了使用Python执行系统命令后获取返回值的几种方式,包括os.system()、os.popen()、subprocess.call()、subprocess.Popen()和check_output()。这些函数都可以执行系统命令,并返回相应的结果,可以根据具体需求选择合适的函数使用。