subprocess.run函数介绍
📅 2026/7/24 23:30:09
👁️ 次浏览
前言subprocess.run 是 Python 3.5 引入的函数也是目前官方最推荐的用于执行外部命令如 Shell 命令、系统脚本、其他程序的方法。官方文档明确建议在大多数情况下应该优先使用 subprocess.run()而不是旧的 os.system、subprocess.Popen 或subprocess.check_output。 它就像一个“全能瑞士军刀”功能强大且用法灵活。示例importsubprocessdefrun_hive_query(cmd):try:# 执行命令捕获输出转为文本并要求失败时报错resultsubprocess.run(cmd,capture_outputTrue,textTrue,checkTrue,timeout3600# 设置 1 小时超时)# 如果成功返回标准输出returnresult.stdout.strip()exceptsubprocess.CalledProcessErrorase:# 如果 checkTrue 触发了异常可以分别拿到 stdout 和 stderrerror_msge.stderr.strip()ife.stderrelse未知错误raiseException(f命令执行失败 (返回码{e.returncode}):{error_msg})exceptsubprocess.TimeoutExpiredase:raiseException(f命令执行超时)核心参数详解subprocess.run 之所以全能是因为它有几个非常实用的参数1.capture_outputTrue: 同时捕获标准输出stdout和标准错误stderr。Python 3.7 引入以前的写法是stdoutsubprocess.PIPE,stderrsubprocess.PIPE。2.textTrue (或 encoding‘utf-8’): 将输入/输出作为字符串处理而不是字节bytes。3.checkTrue: 非常重要 默认情况下run 遇到命令执行失败返回码非0不会报错只会默默返回一个非0的 returncode。如果加上 checkTrue一旦命令失败它会自动抛出 subprocess.CalledProcessError 异常这就和 check_output 的行为一样了。4.timeoutN: 设置超时时间秒。如果命令执行超过 N 秒还没结束会抛出TimeoutExpired 异常。防止程序卡死。5.shellTrue: 允许你直接传入一个完整的字符串命令比如 “ls -l | grep txt”而不是列表。警告 除非必要尽量少用如果字符串里包含用户输入会有严重的安全漏洞Shell 注入。核心返回值CompletedProcess 对象subprocess.run 执行完毕后会返回一个 CompletedProcess 对象。这个对象包含了命令执行的所有关键信息result.returncode: 退出状态码0 通常表示成功非 0 表示失败。result.stdout: 标准输出的内容需要配合 capture_outputTrue 使用。result.stderr: 标准错误的内容需要配合 capture_outputTrue 使用。result.args: 你原本传递进去的命令subprocess.check_output和subprocess.run的区别run 是 Python 3.5 之后引入的“全能瑞士军刀”而 check_output 是一个专门为了“获取输出”而存在的快捷函数。以下是具体的区别对比返回值不同 (最直观的区别)subprocess.run返回一个 CompletedProcess 对象。这个对象包含了命令执行的所有信息比如返回码 (returncode)、标准输出 (stdout)、标准错误 (stderr)。你需要通过 .stdout 属性才能拿到具体的输出内容。subprocess.check_output直接返回命令的标准输出内容字符串或字节串。默认的错误处理方式不同subprocess.run默认情况下如果外部命令执行失败返回码非 0它不会报错而是正常返回一个 CompletedProcess 对象只是里面的 returncode 不是 0。如果你想让它报错必须手动加上 checkTrue 参数。subprocess.check_output顾名思义带有 check如果命令执行失败它一定会抛出 subprocess.CalledProcessError 异常。importsubprocess# 直接拿到字符串结果如果失败会自动抛出异常result_textsubprocess.check_output([echo,hello],textTrue)print(result_text)# 需要指定 capture_outputTrue 才会捕获输出# 需要指定 checkTrue 才会像 check_output 一样在失败时报错# 最后需要加上 .stdout 才能拿到具体的文本resultsubprocess.run([echo,hello],capture_outputTrue,textTrue,checkTrue)result_textresult.stdoutprint(result_text)
1. 项目概述:为什么我们需要一个动态的属性调整系统?做RPG游戏,尤其是那种角色会升级、装备会更换、天赋能点亮的,最头疼的问题之一就是属性计算。你肯定遇到过:玩家升了一级,攻击力加了10点,但…
📅 2026/7/24 23:30:09
1. 项目概述:番茄成熟度检测系统的核心价值在农业生产和食品加工领域,番茄成熟度的准确判断直接影响采摘效率、储存周期和最终产品质量。传统人工检测方法存在主观性强、效率低下等问题,而基于计算机视觉的自动化检测方案正在改变这一现状。这…
📅 2026/7/24 23:30:09
AI短剧正从"单条手工制作"向"工业化批量生产"演进。据《中国网络视听发展研究报告(2026)》数据显示,2026年Q1全行业上线微短剧约12.8万部,其中AI短剧约12.2万部,占比超过95%。AI短剧占整个AI行业算…
📅 2026/7/24 23:29:09
拿到原始CEL文件那一刻,我手都在抖。不是兴奋,是绝望。之前为了省那几千块外包费,自己折腾了三个月,结果做出来的热图像抽象派画作,P值全是乱码。老板看着我的眼神,比看一堆垃圾数据还冷。今天不聊高大上的算法,就聊聊这行里没人愿意说的实话:geo 基因芯片数据标准化,…
📅 2026/7/25 0:53:23
御坂翻译器:5分钟快速开启Galgame实时翻译的终极解决方案 【免费下载链接】MisakaTranslator 御坂翻译器—Galgame/文字游戏/漫画多语种实时机翻工具 项目地址: https://gitcode.com/gh_mirrors/mi/MisakaTranslator
你是否曾因为语言障碍而错过精彩的日系视…
📅 2026/7/25 0:53:32
更多请点击:
https://intelliparadigm.com
第一章:别再只看Pass1!:我们用AST语义等价校验CI流水线实跑验证,重新定义AI编程能力黄金评估标准 传统Pass1指标仅衡量模型首次生成代码是否通过单元测试,却无视…
📅 2026/7/25 0:53:32
更多请点击:
https://intelliparadigm.com
第一章:AI做电商赚钱方法的底层逻辑与行业真相 AI驱动的电商盈利并非依赖“黑科技”或流量玄学,而是建立在数据闭环、用户意图建模与实时决策优化三重基石之上。当前行业普遍存在认知偏差ÿ…
📅 2026/7/25 0:53:32
因为开放式耳机真的好用,但只适合“对的人”。它没有入耳式的闷耳、胀痛,没有头戴式的笨重、闷热,更兼顾了听力友好和场景安全。开放式耳机不用塞进耳道,耳道通畅,不用担心堵耳,不闷不胀,不滋生…
📅 2026/7/25 0:53:32
在当下的耳机品类里,开放式耳机无疑占据着极高热度。伴随声学技术不断迭代升级,大众对耳机的使用要求也变得更加精细化,开放式耳机也跳出了过去小众的定位,慢慢成为通勤出行、日常办公以及运动健身场景里的必备数码单品。那么&…
📅 2026/7/25 0:53:32
1. 项目概述:为什么我们要“手撕”string类?在C的学习道路上,尤其是从C语言过渡到C的“初阶”阶段,string类绝对是一个绕不开的核心。标准库里的std::string用起来太方便了,、find、substr,几个操作符和函数…
📅 2026/7/25 0:00:17
1. 先搞清楚“三角洲寻宝鼠”到底是什么工具从名称来看,“三角洲寻宝鼠”更像是一个资源查找或文件检索类工具,而不是游戏或娱乐软件。这类工具的核心价值在于帮助用户快速定位特定资源,比如文档、图片、压缩包或特定格式的文件。如果你经常需…
📅 2026/7/25 0:00:17
一、直达船员,预警链路最短营运船舶强制标配 VHF 船载电台,属于驾驶室常态化值守设备;预警语音直接传递至驾驶人员,区别于岸上声光报警(船员经常听不到)、短信 / 小程序(船员极少主动查看&#…
📅 2026/7/25 0:00:17
1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…
📅 2026/7/24 1:07:52
1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…
📅 2026/7/24 1:07:52
更多请点击:
https://intelliparadigm.com
第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…
📅 2026/7/24 1:07:52
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/24 7:08:08
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/24 17:08:36
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/24 5:08:03