`import subprocess` 是 Python 中导入标准库模块 `subprocess` 的语句
`import subprocess` 是 Python 中导入标准库模块 `subprocess` 的语句,该模块用于**生成新进程、连接其输入/输出/错误管道,并获取返回码**,是 Python 与操作系统命令行交互的核心工具。
✅ 主要用途包括:
- 执行 shell 命令(如 `ls`, `git status`, `ping`, 自定义脚本等);
- 捕获命令输出(stdout/stderr)用于后续处理;
- 控制进程执行超时、环境变量、工作目录等;
- 替代已弃用的 `os.system()`、`os.popen()` 和 `commands` 模块,更安全、灵活、跨平台。
📌 常用函数示例:
```python
import subprocess
# ✅ 推荐:run() —— 现代、简洁、返回 CompletedProcess 对象
result = subprocess.run(["python", "--version"],
capture_output=True, text=True)
print(result.stdout.strip()) # 输出如 'Python 3.12.4'
# ✅ 调用 shell 命令(注意安全:避免 shell=True + 用户输入拼接!)
subprocess.run("echo Hello World", shell=True)
# ✅ 捕获并处理实时输出(适用于长时运行命令)
proc = subprocess.Popen(["ping", "-c", "3", "python.org"],
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
text=True)
for line in proc.stdout:
print(f"[OUTPUT] {line.rstrip()}")
# ✅ 传入环境变量或修改 cwd
subprocess.run(["ls", "-l"], cwd="/tmp", env={"LANG": "C"})
```
⚠️ 安全提醒:
- 避免 `shell=True` 与不可信输入拼接(易导致 shell 注入),应优先使用参数列表形式(如 `["ls", "-l", filename]`);
- `check=True` 可在命令失败时自动抛出 `subprocess.CalledProcessError`;
- Windows 下注意可执行文件路径(推荐使用绝对路径或确保在 `PATH` 中)。
相关推荐
关于python导入模块import与常见的模块详解
今天小编就为大家分享一篇关于python导入模块import与常见的模块详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
详解Python中的from..import绝对导入语句
绝对导入其实非常简单,即是用from语句在import前指明顶层package名,下面我们通过两个例子来详解Python中的from..import绝对导入语句
python模块导入的方法
在本篇文章里小编给大家分享的是一篇关于python模块导入方法知识点总结,需要的朋友们可以学习下。
浅谈在JupyterNotebook下导入自己的模块的问题
主要介绍了浅谈在JupyterNotebook下导入自己的模块的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
Python中使用语句导入模块或包的机制研究
主要介绍了Python中使用语句导入模块或包的机制研究,同时对比了几种导入包或模块的语句并简要说明了这几种方法之间的几点优劣,需要的朋友可以参考下



