隐藏页面特效

subprocess

# 推荐使用call、check_call和check_output这三个快捷函数,在无法满足需求的时候才使用更高级的Popen接口 # call subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False) 运行由args参数提供的命令,等待命令执行结束并返回返回码。args参数由字符串形式提供且有多个命令参数时,需要提供shell=True. subprocess.call('ls -l', shell=True) 多个命令参数通过列表的形式提供时不需要提供shell=True参数 subprocess.call(['ls', '-l']) ## 注意点: 尽量都少用如下PIPE 不要为stdoutstderr参数赋值subprocess.PIPE,如果子进程输出量较多会造成死锁,这两个参数可以赋值为subprocess.STDOUT打印到屏幕或者赋值为一个文件对象将输出写入文件 import subprocess as sp sp.call('python run.py', shell=True, stdin=open('fake_input', 'r'), stdout=open('result', 'w')) # 允许你去创建一个新的子进程让其执行另外的程序,并与它进行通信,获取标准的输入,标准输出,标准错误以及返回码等 import subproecss subprocess.run(['df', '-h'], shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) stdin,stdout,stderr:分别表示程序的标准输入、标准输出、标准错误。有效的值可以是PIPE,存在的文件描述符,存在的文件对象或None,如果为None需从父进程继承过来,stdout可以是PIPE,表示对子进程创建一个管道,stderr可以是STDOUT,表示标准错误数据应该从应用程序中捕获并作为标准输出流stdout的文件句柄。 subprocess.check_output() #可以执行一条sh命令,并返回的子程序的执行结果,返回unicode,需要用decode解码,如果子进程退出码不是0,报CalledProcessError异常错误,异常的output字段包含错误输出。 subprocess.check_call() # 命令执行成功返回返回码0,否则抛出subprocess.CalledProcessError异常。异常包括returncode、cmd、output等属性,其中returncode是子进程的退出码,cmd是子进程的执行命令,output为None。 subprocess.call(args ,*, stdin=None , stdout=None, stderr=None, shell=False) # 命令执行成功返回0,否则返回非0 shell:表示使用linux shell,默认shellFalse,正常情况下传递的命令是字符串列表,如果使用了shell=True,那么传递的命令为字符串,python会首先运行一个shell,再用这个shell来解释整个字符串 subprocess.Popen # Popen对象创建后,子进程便会运行,Popen类提供了若干方法来控制子进程的运行 - wait # 等待子进程结束 - poll # 检查子进程状态 - kill # 给子进程发送SIGKILL信号终止子进程 - send_signal # 向子进程发送信号 - terminate # 给子进程发送SIGTERM信号终止子进程 - communicate # 与子进程交互 # 示例 def execute_cmd(cmd): p = subprocess.Popen(cmd, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout, stderr = p.communicate() if p.returncode != 0: return p.returncode, stderr return p.returncode, stdout

__EOF__

本文作者404 Not Found
本文链接https://www.cnblogs.com/weiweivip666/p/14869719.html
关于博主:可能又在睡觉
版权声明:转载请注明出处
声援博主:如果看到我睡觉请喊我去学习
posted @   我在路上回头看  阅读(178)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2020-06-10 进程,join的使用,守护进程---day30
点击右上角即可分享
微信分享提示