在python中获取USB挂载点遇到困难
我正在写一个Python脚本,用来列出USB大容量存储设备。我想打印出制造商、设备的大小以及它的挂载位置。USB大容量存储设备是由操作系统自动挂载的。
我已经搞定了制造商和设备大小的部分,但在获取挂载点上遇到了困难。当我运行df -h
命令时,得到的结果是:
文件系统:/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都很陌生,所以如果这个问题很基础,请见谅。
补充2:我还想知道分区上剩余的可用空间。
1 个回答
0
根据我所了解,获取挂载点的方法会根据不同的实现而有所不同。比如,在OSX系统上,你可以使用diskutil
命令,在插入USB设备之前和之后来获取新设备的挂载点。而在Linux系统上,使用的工具会有所不同。
另外,你可以使用这个库和示例来检测USB设备何时被挂载。你需要等几秒钟让设备挂载完成,然后检查一下新设备。