Python 中调用终端输入命令
在 Python 中,我们经常需要与终端进行交互,执行一些系统命令或外部程序。Python 提供了多种方式来实现这一功能,例如使用 os
模块、subprocess
模块等。本文将主要介绍如何使用 subprocess
模块来调用终端输入命令,并提供一些常用的示例代码。
subprocess 模块简介
subprocess
模块是 Python 中用于创建新进程,与这些新进程进行交互的模块。它提供了更高级别的接口,用于处理子进程的输入、输出和错误。通过 subprocess
模块,我们可以执行终端命令,并获取命令的输出结果。
subprocess 模块的常用函数
下面是 subprocess
模块中的一些常用函数:
subprocess.run()
:执行命令,并返回命令的执行结果和输出。subprocess.call()
:执行命令,并返回命令的执行结果。subprocess.check_output()
:执行命令,并返回命令的输出结果。
使用 subprocess.call() 调用终端命令
下面是使用 subprocess.call()
函数调用终端命令的示例代码:
import subprocess
# 调用 ls 命令查看当前目录的文件列表
subprocess.call(["ls"])
# 调用 echo 命令输出文本
subprocess.call(["echo", "Hello, World!"])
在上述示例中,我们使用 subprocess.call()
函数来执行终端命令。函数的参数是一个列表,列表的每个元素是命令的一部分。例如,subprocess.call(["ls", "-l"])
将执行 ls -l
命令。
使用 subprocess.run() 调用终端命令
subprocess.run()
函数是 Python 3.5 之后新增的函数,它是 subprocess.call()
函数的升级版。下面是使用 subprocess.run()
函数调用终端命令的示例代码:
import subprocess
# 调用 ls 命令查看当前目录的文件列表
result = subprocess.run(["ls"], capture_output=True, text=True)
print(result.stdout)
# 调用 echo 命令输出文本
result = subprocess.run(["echo", "Hello, World!"], capture_output=True, text=True)
print(result.stdout)
在上述示例中,我们使用 subprocess.run()
函数执行终端命令,并通过 capture_output=True
参数来捕获命令的输出结果。通过 text=True
参数,我们将命令的输出结果以文本形式返回。
使用 subprocess.check_output() 调用终端命令
subprocess.check_output()
函数是 subprocess.run()
函数的另一种形式,它执行命令并返回命令的输出结果。下面是使用 subprocess.check_output()
函数调用终端命令的示例代码:
import subprocess
# 调用 ls 命令查看当前目录的文件列表
result = subprocess.check_output(["ls"], text=True)
print(result)
# 调用 echo 命令输出文本
result = subprocess.check_output(["echo", "Hello, World!"], text=True)
print(result)
在上述示例中,我们使用 subprocess.check_output()
函数执行终端命令,并通过 text=True
参数来指定输出结果以文本形式返回。
总结
本文介绍了如何在 Python 中调用终端输入命令,并提供了使用 subprocess
模块的示例代码。通过 subprocess.call()
、subprocess.run()
和 subprocess.check_output()
等函数,我们可以方便地执行终端命令,并获取命令的输出结果。在实际应用中,我们可以利用这些函数来完成一些与系统交互的任务,扩展 Python 的功能。