📜  python - 如何执行程序或调用系统命令? - Python (1)

📅  最后修改于: 2023-12-03 15:04:03.017000             🧑  作者: Mango

Python - 如何执行程序或调用系统命令?

Python 是一种流行的脚本语言,它可以执行许多不同的任务。其中一个常见任务是执行程序或调用系统命令。

在 Python 中,执行程序或调用系统命令有多种方法,包括使用 subprocess 模块、os 模块、popen 方法以及 Pexpect 库等。

1. subprocess 模块

subprocess 模块是 Python 内置模块之一,提供了一种方便的方式来执行新进程。可以使用 subprocess 模块来执行命令行命令并在 Python 脚本中捕获其输出。

下面是一些使用 subprocess 模块的示例:

import subprocess

# 运行命令并打印结果
result = subprocess.run(["ls", "-l"], stdout=subprocess.PIPE)
print(result.stdout)

# 使用 stdin 输入数据并使用 stdout 捕获输出
result = subprocess.run(["grep", "test"], input=b"this is a test\nhello test\n", stdout=subprocess.PIPE)
print(result.stdout)

上面的代码演示了如何使用 subprocess 模块执行命令并捕获其输出。在第一个示例中,我们运行 ls -l 命令并将其输出打印到控制台。在第二个示例中,我们使用 stdin 输入一些数据,然后运行 grep test 命令来查找包含“test”字样的行。

2. os 模块

Python os 模块是一种与操作系统交互的内置模块。它包含许多有用的函数,例如 chdir、getcwd、listdir 等。

下面是一个示例,展示如何使用 os 模块来执行命令:

import os

# 执行命令
os.system("ls -l")

# 使用子进程执行命令并捕获输出
output = os.popen("ls -l").read()
print(output)

在上面的示例中,我们使用 os.system 函数执行命令并将其输出打印到控制台。另外,我们使用 os.popen 方法执行命令并捕获其输出。

3. Pexpect 库

Pexpect 库是 Python 的一个第三方库,它提供了一种解决方案来处理交互式进程。

下面是一个使用 Pexpect 库的示例:

import pexpect

# 打开交互式 Shell
child = pexpect.spawn('/bin/bash')

# 执行命令并捕获输出
child.sendline('ls -l')
child.expect(pexpect.EOF)
output = child.before.decode('utf-8')
print(output)

在上面的示例中,我们使用 Pexpect 库打开一个交互式 Shell,然后执行命令并捕获其输出。

结论

在 Python 中,执行程序或调用系统命令有多种方法。一些常见的方法包括使用 subprocess 模块、os 模块、popen 方法以及 Pexpect 库等。无论你在何时遇到执行程序或调用系统命令的需求,这些方法都能够帮助你轻松地实现它们。