我正在用python检测我的raspberry pi上的所有USB笔驱动器。我要他们所有的坐骑位置。我已经检查了APi,但是我找不到如何为设备选择挂载点。在
bus = dbus.SystemBus()
ud_manager_obj = bus.get_object("org.freedesktop.UDisks", "/org/freedesktop/UDisks")
ud_manager = dbus.Interface(ud_manager_obj, 'org.freedesktop.UDisks')
output=[]
for dev in ud_manager.EnumerateDevices():
device_obj = bus.get_object("org.freedesktop.UDisks", dev)
device_props = dbus.Interface(device_obj, dbus.PROPERTIES_IFACE)
if device_props.Get('org.freedesktop.UDisks.Device', "DeviceIsRemovable"):
temp = []
**## HOW DO I GET THE MOUNTED ON I SEE IN df -h ?**
output.append(temp)
return output
这就是我需要的:
^{pr2}$对于每个外部USB设备,我需要一个包含以下信息的阵列: [制造商,人类可读的总大小(GB),装入点第一个分区,总大小(KB),可用大小(KB)]
编辑:
我把代码改为:
def USBDEVICES():
bus = dbus.SystemBus()
ud_manager_obj = bus.get_object("org.freedesktop.UDisks", "/org/freedesktop/UDisks")
ud_manager = dbus.Interface(ud_manager_obj, 'org.freedesktop.UDisks')
output=[]
for dev in ud_manager.EnumerateDevices():
device_obj = bus.get_object("org.freedesktop.UDisks", dev)
device_props = dbus.Interface(device_obj, dbus.PROPERTIES_IFACE)
if device_props.Get('org.freedesktop.UDisks.Device', "DeviceIsRemovable"):
temp = []
temp.append(str(device_props.Get('org.freedesktop.UDisks.Device', "DriveVendor")))
temp.append(str(math.ceil(device_props.Get('org.freedesktop.UDisks.Device', "PartitionSize")/1048576.0)/1000)+' GB')
temp.append(device_props.Get('org.freedesktop.UDisks.Device', "DeviceIsMounted"))
temp.append(device_props.Get('org.freedesktop.UDisks.Device','DeviceMountPaths'))
output.append(temp)
print output
我希望得到这个输出:
[['TDKMedia','15.255GB',True,'/media/usb0',['Sony','3.812 GB',True,'/media/usb1']
但我得到的却是:
[['TDKMedia','15.255 GB',dbus布尔型(错误,变量_级别=1),dbus.数组([]),签名=dbus.签名('s'),变量_level=1)],['USB2.0','3.812 GB',dbus布尔型(正确,变量_级别=1),dbus.数组([dbus.字符串(u'/media/usb1')],签名=dbus.签名('s'),变量级别=1)]]
TDKMedia USB驱动器没有安装路径,另一个USB驱动器有点奇怪。 但当我看到测向仪时,它说TDK已经安装好了。。。:/
由于主要问题已经解决,我为未装入的问题打开了一个新的主题:https://stackoverflow.com/questions/24928984/python-dbus-acting-weird
根据^{} documentation ,a
Device
有以下属性:唉,我无法证实,但以下几点应该会奏效:
相关问题 更多 >
编程相关推荐