挣扎着获得USb挂载点python

时间:2014-07-06 12:18:26

标签: python point mount dbus

我正在编写一个列出USB大容量存储设备的python脚本。我想打印出制造商,设备的尺寸以及安装位置。 usb大容量存储设备由OS自动安装。 我有制造商的东西和设备尺寸工作;但我正在努力获得挂载点。当我df -h时,我得到了这个:

FS是:/ dev / SDA1
大小:980M
使用:0
可用:980M
使用:0%
安装在:/ media / usb0

这是安装在我身上的。这是我已经获得的代码:

def fetchExternals():
  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')

  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"):
      print device_props.Get('org.freedesktop.UDisks.Device', "DriveVendor")
      print str(math.ceil(device_props.Get('org.freedesktop.UDisks.Device', "PartitionSize")/1048576.0)/1000)+' GB'

有人可以告诉我是否可以获取驻留在设备上的分区的挂载点?

编辑:我是linux和python的新手,很抱歉,如果这真的是一个noob问题。

edit2:我还希望在分区上留下可用空间。

1 个答案:

答案 0 :(得分:0)

据我所知,获取挂载点会因实现而异。例如,您可以在OSX上使用diskutil,在插入USB设备之前和之后获取新设备挂载点。在Linux上,实用程序会有所不同。

并且,您可以使用此library and example来检测何时安装USB设备。等待几秒钟才能安装它并检查新设备。