我正在编写一个小程序来列出可用的 USB 设备。我创建了一个带有函数的单独文件,以便可以随时从其他脚本访问它。此函数的主要目标是返回列表/数组作为输出。如果我使用 print 命令,它会成功打印可用设备的列表。但是,当我使用 return 命令时,它只会重新启动第一个检测到的设备。我已经从 SO 解决了其他类似的问题,但找不到任何有效的解决方案。这是我尝试使用 dbus 的代码。任何帮助都会得到帮助。
#!/usr/bin/python2.7
import dbus
def find_usb(self):
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', "DriveConnectionInterface") == "usb" and device_props.Get('org.freedesktop.UDisks.Device', "DeviceIsPartition"):
if device_props.Get('org.freedesktop.UDisks.Device', "DeviceIsMounted"):
device_file = device_props.Get('org.freedesktop.UDisks.Device', "DeviceFile")
#print device_file
return device_file
else:
print "Device not mounted"
find_usb("")