更多Python学习内容:ipengtao.com
在 Python 中,subprocess
模块提供了一种强大的方式来执行外部命令并与之交互。无论是运行系统命令、调用其他可执行文件,还是与其他进程进行通信,subprocess
都能胜任。本文将全面介绍 Python 的 subprocess
模块,包括其基本用法、高级功能以及实际应用场景,并提供丰富的示例代码,帮助深入理解和灵活运用这个强大的工具。
subprocess 模块概述
subprocess
模块允许 Python 程序创建新的进程、连接到子进程的输入/输出/错误管道,并获取其返回值。它提供了一种更加灵活和可靠的方法来执行外部命令,取代了过时的 os.system
和 os.spawn*
函数。
执行简单的外部命令
要执行一个简单的外部命令,只需调用 subprocess
模块的 run
函数即可。
import subprocess
result = subprocess.run(["ls", "-l"], capture_output=True, text=True)
print(result.stdout)
上述代码运行了 ls -l
命令,并将输出结果打印出来。
获取命令执行结果
可以通过 subprocess
模块的 run
函数来获取命令执行的返回结果。
result = subprocess.run(["echo", "Hello, World!"], capture_output=True, text=True)
print(result.returncode)
returncode
属性表示命令执行的返回码。
与子进程交互
subprocess
模块允许与子进程进行交互,包括向子进程发送输入、读取子进程的输出等操作。
process = subprocess.Popen(["cat"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, text=True)
process.stdin.wr