Python标准库之subprocess

1. subprocess标准库简介

subprocess允许你生成新的进程,连接它们的输入、输出、错误管道,并且获取它们的返回码,代替一些老旧的模块与功能。

这里主要探讨一下如何通过该模块的函数替代os.system函数执行命令,首先导入

import subprocess 

2. subprocess常用类和函数

2.1 subprocess.run函数

本模块首先推荐使用run函数,一般用来执行各种命令,下面给出常见用法

def exec_cmd(command:str,timelimit=4):
    """
    执行命令行命令
    :param command: 待执行命令的字符串
    :param timelimit: 命令执行超时秒数
    :return: CompletedProcess实例
    """
    return subprocess.run(command,shell=True,stdout=subprocess.PIPE,
                                     stderr=subprocess.PIPE,encoding="utf-8",timeout=timelimit)
command="cat /etc/issue" # 待执行命令用于查看ubuntu版本
completed_process=exec_cmd(command)
print("执行命令获得的ubuntu版本标准输出结果为\n{}".format(completed_process.stdout))

在这里插入图片描述

command="cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c" # 查看CPU型号
completed_process=exec_cmd(command,timelimit=6) # 将超时秒数设置为6s,否则会超时错误
print("执行命令获得的CPU型号标准输出结果为\n{}".format(completed_process.stdout))

在这里插入图片描述

command="free -m" # 查看内存使用情况
completed_process=exec_cmd(command)
print("执行命令获得的内存使用情况标准输出结果为\n{}".format(completed_process.stdout))

在这里插入图片描述

command="nvidia-smi" # 查看显存使用情况
completed_process=exec_cmd(command)
print("执行命令获得的显存使用情况标准输出结果为\n{}".format(completed_process.stdout))

在这里插入图片描述

2.2 subprocess.Popen类

Popen 是 subprocess的核心,子进程的创建和管理都靠它处理,很多常用函数如run都是基于subprocess.Popen类实现的。不常见的功能可通过该类定制实现。具体用法请查阅官网文档

3.参考文献

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值