centos

Python在CentOS中如何调用外部命令

小樊
34
2025-08-25 00:37:00
栏目: 编程语言

在Python中,你可以使用subprocess模块来调用外部命令。subprocess模块提供了一个简单一致的方式来启动新进程,连接它们的输入/输出/错误管道,并获取它们的返回码。

以下是一个简单的例子,展示了如何在Python中使用subprocess模块调用外部命令:

import subprocess

# 调用外部命令并获取输出
result = subprocess.run(['ls', '-l'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)

# 打印输出结果
print("stdout:", result.stdout)
print("stderr:", result.stderr)
print("returncode:", result.returncode)

在这个例子中,我们使用subprocess.run()函数调用了ls -l命令。stdout=subprocess.PIPEstderr=subprocess.PIPE参数表示我们希望捕获命令的标准输出和标准错误。text=True参数表示我们希望以文本形式接收输出,而不是字节形式。

subprocess.run()函数返回一个CompletedProcess对象,它包含了命令的输出、错误和返回码等信息。

如果你需要更多的控制,例如实时读取输出或与子进程进行交互,你可以使用subprocess.Popen类。以下是一个使用Popen的例子:

import subprocess

# 创建一个子进程
process = subprocess.Popen(['ls', '-l'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)

# 实时读取输出
for line in process.stdout:
    print(line, end='')

# 等待子进程完成并获取返回码
returncode = process.wait()
print("returncode:", returncode)

在这个例子中,我们使用subprocess.Popen创建了一个子进程,并通过process.stdout实时读取输出。process.wait()方法会等待子进程完成,并返回其返回码。

0
看了该问题的人还看了