我目前正在使用dmidecode来做其他的事情,但是我还没有找到在linux上检索视频卡规范的好信息(主要是fedora、ubuntu、debian、centos、redhat)
我想用的是:lspci -vHAL
解析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())

09-25 16:28