python subprocess
subprocess库用于执行Shell命令, 工作时会fork一个子进程去执行任务,连接到子进程的标准输入、输出、错误,并获得它们的返回代码。
这个模块将取代os.system、 os.spawn*、 os.popen*、 popen2.*和commands.*。
1 2 3 4 5 6 7 | subprocess的主要方法: subprocess.run() subprocess.Popen() subprocess.call() 语法: subprocess.run(args, * , stdin = None , stdout = None , stderr = None , shell = False , cwd = None , timeout = None , check = False , encoding = None ) |
参数 | 说明 |
args | 要执行的shell命令,默认是一个字符串序列,如['ls', '-al']或('ls', '-al');也可是一个字符串,如'ls -al', 同时需要设置shell=True。 |
stdin stdout stderr |
run()函数默认不会捕获命令运行结果的正常输出和错误输出,可以设置stdout=PIPE, stderr=PIPE来 从子进程中捕获相应的内容;也可以设置stderr=STDOUT,使标准错误通过标准输出流输出。 |
shell | 如果shell为True,那么指定的命令将通过shell执行。 |
cwd | 改变当前工作目录 |
timeout | 设置命令超时时间。如果命令执行时间超时,子进程将被杀死,并弹出TimeoutExpired 异常。 |
check | 如果check参数的值是True,且执行命令的进程以非0状态码退出,则会抛出一个CalledProcessError 的异常,且该异常对象会包含参数、退出状态码、以及stdout和stderr(如果它们有被捕获的话)。 |
encoding | 如果指定了该参数,则 接收 bytes 类型的数据。stdin、 stdout 和 stderr 可以接收字符串数据,并以该编码方式编码。否则只 |
1 2 3 4 5 6 7 8 9 | #示例: import subprocess cmd = "pwd" result = subprocess.run(cmd, shell = True , timeout = 3 , stderr = subprocess.PIPE,stdout = subprocess.PIPE) print (result) #run方法返回CompletedProcess实例,可以直接从这个实例中获取命令运行结果: print (result.returncode) # 获取命令执行返回状态码 print (result.stdout) # 命令执行标准输出 print (result.stderr) # 命令执行错误输出 |
初学linux,每学到一点东西就写一点,如有不对的地方,恳请包涵!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能