我目前正在使用dmidecode
来做其他的事情,但是我还没有找到在linux上检索视频卡规范的好信息(主要是fedora、ubuntu、debian、centos、redhat)
我想用的是:lspci -v
或HAL
解析lspci
数据的最有效方法是什么,只获取vga部分,然后输出json
。
def get_graphic_card_properties():
import dbus
bus = dbus.SystemBus()
hal_manager_object = bus.get_object('org.freedesktop.Hal', '/org/freedesktop/Hal/Manager')
hal_manager_interface = dbus.Interface(hal_manager_object, 'org.freedesktop.Hal.Manager')
method = hal_manager_object.get_dbus_method('GetAllDevices', 'org.freedesktop.Hal.Manager')
print "\n".join(list(iter(method())))
这是唯一的代码,我能遇到的一个例子,似乎不适合我在Fedora 17 64位,我认为,因为没有
/orc/freedesktop/Hal.Manager
。有什么想法吗?
最佳答案
下面是lspcihere的命令示例。所以基本上,您可以调用subprocess来访问来自python的命令。
import subprocess
def find_vga():
vga = subprocess.Popen("lspci -v -s `lspci | awk '/VGA/{print $1}'`", shell=True)
return vga
print(find_vga())
或
def find_vga():
vga = subprocess.check_output("lspci -v -s `lspci | awk '/VGA/{print $1}'`", shell=True, executable='/bin/bash')
return vga
print(find_vga())