Python 標準ライブラリのサブプロセス

1. サブプロセス標準ライブラリの紹介

subprocess を使用すると、新しいプロセスを生成し、それらの入力、出力、エラー パイプを接続し、リターン コードを取得して、一部の古いモジュールと関数を置き換えることができます。

ここでは主に、os.system 関数ではなく、このモジュールの関数を使用してコマンドを実行する方法について説明します。

import subprocess 

2. よく使われるクラスと関数をサブプロセスする

2.1subprocess.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.2subprocess.Popen类

Popen は subprocess のコアです. サブプロセスの作成と管理を処理します. run などの多くの一般的に使用される関数は、subprocess.Popen クラスに基づいて実装されています. 珍しい機能は、このクラスを介してカスタマイズできます。具体的な使用方法については、公式 Web サイトのドキュメントを参照してください。

3.参考文献

おすすめ

転載: blog.csdn.net/m0_46223009/article/details/128073092