0

我想制作一个 python 脚本来检查用户的机器外形(笔记本电脑或台式机),然后我就可以使用这样的条件:

chassis_type = some_module.get_chassis_type()
if chassis_type == 'laptop':
    print("You are out of luck, because you are using laptop.")
if chassis_type == 'desktop':
    print("You are good to go, because you are using desktop.")

我不想检查是否存在电池,但我想使用更通用的方式。有没有办法使用python实现这一点?

4

1 回答 1

0

有几种方法可以做到这一点。

您可以使用 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.

于 2020-07-09T14:36:26.117 回答