Python 如何调用 Linux 命令

Python 如何调用 Linux 命令

Python 如何调用 Linux 命令

1. 引言

Python 作为一种通用的编程语言,具有丰富的库和模块,可以用于各种不同的应用场景。其中之一就是通过 Python 代码来调用和执行 Linux 命令。本文将详细介绍如何使用 Python 调用 Linux 命令,包括使用 os 模块、subprocess 模块以及使用第三方库 fabric

2. 使用 os 模块

Python 的 os 模块提供了一种简单的方法来与操作系统进行交互。它包含了执行系统命令的函数,可以方便地调用 Linux 命令。下面是一个简单的例子,演示了如何使用 os.system() 函数来调用 Linux 命令。

import os

# 调用 Linux 命令
os.system('ls -l')

# 输出 Linux 命令的执行结果
result = os.popen('ls -l').read()
print(result)
Python

在上面的例子中,我们使用 os.system('ls -l') 来执行 ls -l 命令,它会在控制台中显示命令的输出结果。而使用 os.popen('ls -l').read() 可以获得命令的执行结果,并将其保存到一个变量中进行后续处理。

值得注意的是,os.system 函数返回的是命令的执行状态码,并不是命令的输出结果。如果命令执行成功,它会返回 0,否则返回非零值。

3. 使用 subprocess 模块

subprocess 模块提供了更丰富和灵活的方法来调用和执行 Linux 命令。它可以替代 os.system() 函数,并提供更多的控制选项。下面是一个使用 subprocess 模块调用 Linux 命令的示例代码:

import subprocess

# 调用 Linux 命令
subprocess.call(['ls', '-l'])

# 获取 Linux 命令的输出结果
result = subprocess.check_output(['ls', '-l'])
print(result.decode('utf-8'))
Python

上述代码中,我们使用 subprocess.call(['ls', '-l']) 来调用 ls -l 命令,并使用 subprocess.check_output(['ls', '-l']) 获取命令的输出结果。

subprocess.call() 函数与 os.system() 函数类似,可以调用 Linux 命令并在控制台中显示命令的输出结果。而 subprocess.check_output() 函数则可以获得命令的输出结果,并将其保存到一个变量中。

需要注意的是,subprocess.call() 函数返回的是命令的返回码,而 subprocess.check_output() 函数返回的是命令的输出结果。在 Python 3 中,输出结果是一个字节串,需要通过 decode() 方法进行解码,才能得到可读的字符串。

4. 使用 fabric

fabric 是一个用于自动化部署和系统管理的 Python 库,它提供了更高级的接口来调用和执行 Linux 命令。可以通过在 Python 代码中编写任务函数的方式,实现对远程主机的批量操作。下面是一个使用 fabric 库的示例代码:

from fabric import Connection

# 连接远程主机
conn = Connection('username@hostname')

# 调用 Linux 命令
result = conn.run('ls -l')
print(result.stdout)
Python

上面的代码中,我们首先使用 Connection 类连接到远程主机。然后,使用 conn.run('ls -l') 调用 ls -l 命令,并通过 result.stdout 获取命令的输出结果。

fabric 库提供了许多其他功能,例如上传和下载文件、远程执行 Python 代码等。详情可以参考 fabric 官方文档

5. 总结

本文介绍了三种不同的方法来使用 Python 调用和执行 Linux 命令。通过 os 模块和 subprocess 模块,可以在本地操作系统上执行命令,并获取命令的输出结果。而通过 fabric 库,可以实现对远程主机的批量操作。选择使用哪种方法取决于具体的需求和场景。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册