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 に答える