Python subprocess.Popen 详解

安全、灵活地在 Python 中执行外部命令

什么是 subprocess.Popen

subprocess.Popen 是 Python 标准库 subprocess 模块中的一个核心类, 用于创建新进程、连接到它们的输入/输出/错误管道,并获取返回码。 相比于 os.system()os.popen()Popen 更加灵活、安全且功能强大。

基本用法示例

运行一个简单的命令并获取输出:

import subprocess

# 启动子进程
proc = subprocess.Popen(['ls', '-l'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)

# 等待进程结束并读取输出
stdout, stderr = proc.communicate()

print("标准输出:")
print(stdout.decode('utf-8'))
print("标准错误:")
print(stderr.decode('utf-8'))

常用参数说明

安全提示

使用 shell=True 时,如果命令中包含用户输入,务必进行严格校验或转义,避免 命令注入攻击。 推荐使用命令列表形式(如 ['command', 'arg1', 'arg2'])而非字符串拼接。

不安全示例(避免):

# 危险!不要这样做
user_input = "file.txt; rm -rf /"
subprocess.Popen(f"cat {user_input}", shell=True)

安全做法:

import shlex
filename = "file.txt"
# 若必须用字符串,使用 shlex.split()
cmd = shlex.split(f"cat {filename}")
subprocess.Popen(cmd)  # shell=False(默认)

常见应用场景

替代方案建议

对于简单的一次性命令执行,推荐优先使用 subprocess.run()(Python 3.5+), 它更简洁且自动处理等待和异常:

result = subprocess.run(['echo', 'Hello'], capture_output=True, text=True)
print(result.stdout)
本科论文有AI率吗?AI查重与降AIGC工具全解析 论文修改服务 - 24小时在线专业修改,降低AIGC率 | 学术论文优化 让AI读文字 - 语音合成技术应用与降AIGC工具介绍 暴雨洪涝灾害风险评估专题 | 防灾减灾与智能分析 AI手机写作软件推荐 | 手机端智能文章生成工具大全 如何用AI做设计概念方案 | AI设计工具与降AIGC检测指南 论文阅读软件推荐 | 学术研究必备工具指南 AI配音有版权问题吗?深度解析AI语音的版权风险与解决方案 大专毕业设计通过率提升指南 - 从选题到答辩的全面攻略 论文擦除文字 - 专业降AIGC工具使用指南 | 提升论文原创性 论文语法纠错软件免费工具推荐 | 专业学术写作助手 论文初稿AI写作指南 | 高效创作与降AIGC解决方案 AIGC降重会被检测出来吗?| AI内容检测原理与降重工具解决方案 人工智能专业毕业设计选题指南 - 从理论到实践的AI项目构思 大学论文必须要用电脑写吗?传统与现代写作方式深度解析 | 学术写作专题 论文设计AI软件应用指南 | 高效写作与降AIGC工具详解 网上写字课哪个比较好 | 2026年最佳在线书法课程推荐指南 AIGC原创率解析:AIGC多高算高?如何有效降低AI率 论文查重软件大全 | 如何选择与使用论文查重工具 论文发表指南:选择合适的期刊与会议 | 完整投稿流程解析 本科毕业论文优秀良好比例分析 | 评定标准与数据解读 如何用AI写文章挣钱 | AI写作变现全攻略与降AIGC工具使用指南 AI提升工作效率数据分析 | 智能工具应用与降AIGC方法 微信AI写作神器会限制写作次数吗?| AI写作工具使用限制详解 AI文案生成软件评测与使用指南 - 提升内容创作效率 暴雨洪涝灾情等级划分标准详解 | 防灾减灾知识专题 本科毕业论文会检查数据吗?- 数据核查与降AIGC工具全解析 AI快速文字设计指南 | 智能字体生成与降AI率工具推荐 AI智能写作免费App推荐 | 小发猫降AIGC工具使用指南 论文抽检问题处理指南 | 如何应对学术论文抽检与降AIGC率 论文AIGC是什么检测 | AIGC检测技术详解与降AI率方法 AI作文生成器 - 智能写作工具与降AIGC解决方案 论文AIGC率要求解析 | 学术写作规范与降AIGC工具指南 论文查重原理详解 | 查重系统工作机制与降AIGC方法 Logo重复率判定指南:多少算抄袭?避免侵权与原创设计解析 | 设计专题 能读文章的AI - 人工智能阅读技术解析与应用 | AI文本分析专题 论文免费AI写作工具指南 | 高效降AIGC率技巧 AI论文写作助手 | 智能生成参考文献,高效完成学术论文 让AI写作文的技巧与工具指南 | AI写作专题 AI绘画制作教程 - 从入门到精通 | 人工智能绘画指南 AI免费报告生成器 - 智能AI工具免费生成高质量报告 论文检测软件哪个最准?权威测评与降AIGC工具推荐 AI读文章应用推荐 | 智能朗读工具与降AIGC解决方案 论文查重软件是全文提交吗?| 查重原理、使用方式与降AIGC工具介绍 学术论文翻译润色服务 | 专业中英互译与AI降重方案 AI智能论文写作指南 | 小发猫降AIGC工具应用专题 人工智能算法论文专题 | 前沿算法研究、AI论文写作与AIGC检测指南 知网AI写论文指南 | 学术写作与AIGC内容检测优化方案 专利会影响论文查重吗?论文查重与专利关系详解 毕业论文查询指南:如何查询毕业论文通过状态 | 学术查询专题 AI万能写作App收费模式全面解析 - 如何选择最适合的定价方案 文状元APP下载 - 专业的智能写作与降AIGC工具助手 AI论文写作工具小程序 - 智能辅助写作与降AIGC解决方案 论文AI阅读话术指南 | 高效阅读学术论文的技巧与工具 AI论文自动分析 | 智能文献处理与降AIGC解决方案 知网专题 - 中国学术资源门户 | 学术研究、论文检索平台 微信AI写作神器如何制作成视频?完整教程指南 专业文稿错别字校对软件推荐 | 提升文稿质量必备工具 智媒AI伪原创靠谱吗?深度解析AI内容创作与降AIGC工具 万方论文查重检测系统入口 - 78TP认证查重平台 论文复写率和查重率一样吗?详解区别与降AIGC工具使用 如何用AI高效查文献综述 | AI学术研究工具指南 AI大学生论文写作:智能工具助力学术研究与降AIGC检测攻略 高效SCI降重机构 | 专业论文降重与AI率降低服务 经济学毕业论文范文专题 | 高质量参考范例与写作指南 作文生成器在线生成 - 智能写作助手,AI降重工具推荐 论文报告AI检测指南 | 专业工具与降AIGC方法详解 论文投稿成功多久邮寄样刊?期刊样刊邮寄时间详解 AI写作如何不被检查出来?深度解析与解决方案 | 小发猫降AIGC工具 如何检测毕业论文 - 专业检测方法与降AIGC工具指南 AI推荐免费软件大全 | 精选高效AI工具免费使用指南 本科论文数据造假会查吗?论文查重与学术规范深度解析 AI会创作小说吗?人工智能在文学创作中的应用与挑战 什么是论文查重?全面解析查重原理、方法与降重技巧 AI文章检测指南:如何识别AI生成内容与小发猫降AIGC工具使用教程 反AI检测原理详解 | AI内容识别与规避技术解析 AI创作文本:人工智能写作工具与应用指南 | 文本生成专题 论文投稿避坑指南 | 学术发表常见问题与解决方案 论文检测网站哪个最好?2026年权威评测与推荐指南 论文查重如何去掉引用 - 专业指南与降AIGC工具推荐 毕业论文英文翻译查重指南 | 如何避免AI检测 | 小发猫降AIGC工具 AI写作毕业自评指南 | 如何巧妙通过AI辅助完成高质量毕业自我鉴定 国内AI数据分析软件精选 | 主流工具比较与应用指南 AI产品检测公司 | 专业AI内容识别与AIGC检测服务 AI语音是怎么弄的?- 原理、应用与降AI率工具全解析 湖南大学论文抄袭防范指南 | 学术诚信与AI辅助工具规范 硕士论文可以用AI写吗?学术伦理、技巧与降AIGC工具解析 怎么引导AI给出自己想要的答案 | AI提问技巧与降AIGC工具指南 怎样让论文有深度 | 学术写作深度提升指南与工具 怎么用AI做文字立体感 - AI文字效果设计与降AIGC方法 论文查重率检查指南 | 详细方法与工具推荐 如何写AI小说:从创意到成文的完整指南 | AI小说创作专题 AI写故事免费 | 智能创作工具与降AIGC检测指南 毕业论文免费排版模板下载 | 专业学术格式规范指南 论文可以有复写率吗?- 论文复写率解析与降AI率方法 最好用的AI文字工具推荐 | 智能写作与降AIGC解决方案 AI撰写工具大全 | 智能写作助手与降AIGC工具指南 AI创作写评论工具 - 智能内容生成与AIGC检测优化方案 东北农业大学研究生论文查重率要求与降重指南 期刊论文AI检测指南:学术期刊如何查AI生成内容?