dmidecode はハードウェア情報を収集します

HTML

dmidecodeコマンドの出力を HTML または表形式に変換するには、いくつかのコマンド ライン ツールとプログラミング言語機能を使用できます。dmidecodeコマンドを実行し、出力を HTML テーブルに変換する Python を使用したサンプル コードを次に示します。

import subprocess

# 运行 dmidecode 命令并获取输出
output = subprocess.check_output(["dmidecode"])

# 将输出转换为HTML表格
html_table = "<table>\n"
lines = output.decode().split('\n')
for line in lines:
    if line.startswith("Handle") or line.startswith("\t"):
        html_table += f"<tr><td>{
      
      line}</td></tr>\n"
    else:
        html_table += f"<tr><th>{
      
      line}</th></tr>\n"
html_table += "</table>"

# 将HTML表格写入文件
with open("dmidecode.html", "w") as file:
    file.write(html_table)

このコードは、dmidecodeの出力をdmidecode.htmlという名前の HTML ファイルとして保存します。ブラウザでファイルを開いて、変換されたテーブルを表示できます。Python がインストールされており、サブプロセスなどの必要な依存関係がインストールされていることを確認してください。

別のプログラミング言語を使用したい場合は、対応する言語の機能に基づいて同様のコードを作成することもできます。

エクセル

dmidecode出力を Excel テーブルとして保存するには、openpyxlライブラリを使用して Excel ファイルを処理し、subprocessモジュールを使用してコマンドを実行しdmidecodeてシステム情報を取得します。このタスクを実行するためのサンプル コードを次に示します。

import subprocess
from openpyxl import Workbook

# 运行 dmidecode 命令并获取输出
output = subprocess.check_output('dmidecode', shell=True, universal_newlines=True)

# 创建一个新的 Excel 工作簿
workbook = Workbook()
sheet = workbook.active

# 将 dmidecode 输出按行拆分并写入 Excel 表格
for row_index, line in enumerate(output.split('\n')):
    columns = line.split(':')
    if len(columns) == 2:
        sheet.cell(row=row_index + 1, column=1, value=columns[0].strip())
        sheet.cell(row=row_index + 1, column=2, value=columns[1].strip())

# 保存 Excel 文件
workbook.save('dmidecode_output.xlsx')

上記のコードでは、最初にモジュールを使用してコマンドをsubprocess実行し、メソッドを介して出力を行ごとに分割しました。次に、ライブラリを使用して新しい Excel ワークブックを作成し、dmidecode の出力を Excel シートに 1 行ずつ書き込みます。最後に、Excel ファイルを として保存しますdmidecodesplit()openpyxldmidecode_output.xlsx

ライブラリがインストールされていることopenpyxl(pip install openpyxlインストールに使用)、およびdmidecodeコマンドがシステムで使用できることを確認してください。コードを実行すると、Excel という名前の Excel ファイルが現在のディレクトリに生成されdmidecode_output.xlsx、システムの DMI 情報が含まれます。

おすすめ

転載: blog.csdn.net/hezuijiudexiaobai/article/details/131624124