有几种方法可以做到这一点。
您可以使用dmidecode模块从固件中读取此信息,但这需要权限。 此外,您还可以直接读取/sys/class/dmi/id/chassis_type
文件,并将数字转换为指定的机箱字符串。
但我目前使用以下方式:
import re
import subprocess
machine_info = subprocess.check_output(["hostnamectl", "status"], universal_newlines=True)
m = re.search('Chassis: (.+?)\n', machine_info)
chassis_type = m.group(1)
print("Your chassis type is", chassis_type)
此方法依赖于标准的systemd规范,该规范检查固件和/etc/machine-id
。