我开发了一个应用程序,它使用udiskversion1来查找和列出连接的USB驱动器的详细信息。详细信息包括设备(/dev/sdb1…等)、装入点和可用空间。但是,我发现现代发行版默认安装了udisks2。这是在另一个上面找到的小代码螺纹:-在
#!/usr/bin/python2.7
import dbus
bus = dbus.SystemBus()
ud_manager_obj = bus.get_object('org.freedesktop.UDisks2', '/org/freedesktop/UDisks2')
om = dbus.Interface(ud_manager_obj, 'org.freedesktop.DBus.ObjectManager')
for k,v in om.GetManagedObjects().iteritems():
drive_info = v.get('org.freedesktop.UDisks2.Drive', {})
if drive_info.get('ConnectionBus') == 'usb' and drive_info.get('Removable'):
if drive_info['MediaRemovable']:
print("Device Path: %s" % k)
它产生:在
[sundar@arch ~]$ ./udisk2.py
Device Path: /org/freedesktop/UDisks2/drives/JetFlash_Transcend_8GB_GLFK4LYSFG3HZZ48
上面的结果很好,但是我如何连接org.freedesktop.UDisks2.Block
并获得设备的属性?在
http://udisks.freedesktop.org/docs/latest/gdbus-org.freedesktop.UDisks2.Block.html
编辑 请注意,}属性。您必须更改代码以删除对
Block
对象没有ConnectionBus
或{Drive
对象属性的引用才能使代码正常工作。 /编辑如果要连接到},则
Block
,而不是{试试看
^{pr2}$然后可以迭代
drive_info
并输出其属性。例如,要获取Id
属性,可以:我确信有一种很好的pythonic方法来遍历所有属性键/值对并显示值,但我将留给您。Key是
'Id'
,value是存储在drive_info['Id']
中的字符串。祝你好运经过多次的打击和审判,我可以得到我想要的。只是把它贴出来,以便将来有人能从中受益。这是代码:-在
完整的块设备属性可以在这里找到http://udisks.freedesktop.org/docs/latest/gdbus-org.freedesktop.UDisks2.Block.html
相关问题 更多 >
编程相关推荐