日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php执行dmidecode,Python:Dmidecode系统信息

發布時間:2025/3/20 php 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php执行dmidecode,Python:Dmidecode系统信息 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

# dmidecode | less

我們通過?dmidecode 命令可以獲取廠商、產品型號、序列號等、但是?dmidecode 命令輸出的信息太多,我們只需要?System Information 下的?Manufacturer、Product Name、Serial Number?三個信息,并以字典形式輸出。

若沒有?dmidecode 命令,安裝即可:yum install -y dmidecode

代碼如下:

# vim dmi.py#!/usr/bin/env?python

from?subprocess?import?Popen,?PIPE

def?getDmi():

p?=?Popen(['dmidecode'],?stdout=PIPE)

data?=?p.stdout.read()

return?data

def?parseDmi(data):

lines?=?[]

line_in?=?False

dmi_list?=?[i?for?i?in?data.split('\n')?if?i]

for?line?in?dmi_list:

if?line.startswith('System?Information'):

line_in?=?True

continue

if?line_in:

if?not?line[0].strip():

lines.append(line)

else:

break

return?lines

def?dmiDic():

dmi_dic?=?{}

data?=?getDmi()

lines?=?parseDmi(data)

dic?=?dict([i.strip().split(':?')?for?i?in?lines])

dmi_dic['vendor']?=?dic['Manufacturer']

dmi_dic['product']?=?dic['Product?Name']

dmi_dic['sn']?=?dic['Serial?Number']

return?dmi_dic

if?__name__?==?'__main__':

print?dmiDic()

代碼說明:

dmi_list = [i for i in data.split('\n') if i]

是以 \n 對字符串進行切割,保存為一個列表。但是空行就會被切割成為了一個空字符串,if i 則起到去除空字符串效果,因為空字符串為False,只有為True才會被保存到列表中。

if not line[0].strip():

這是因為?System Information 下一行都是以 tab(\t)開頭的,strip函數是去除字符串前后的空格或者tab,line[0].strip()則是對第一個字符執行strip,若該字符為空格或者tab,則會被去除,形成一個空字符,而空字符的類型為False,not line[0].strip()則為True。

執行結果如下:

總結

以上是生活随笔為你收集整理的php执行dmidecode,Python:Dmidecode系统信息的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。