我正在编写一个列出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:我还希望在分区上留下可用空间。
答案 0 :(得分:0)
据我所知,获取挂载点会因实现而异。例如,您可以在OSX上使用diskutil
,在插入USB设备之前和之后获取新设备挂载点。在Linux上,实用程序会有所不同。
并且,您可以使用此library and example来检测何时安装USB设备。等待几秒钟才能安装它并检查新设备。