这似乎很有效
/proc/partitions,并且
/sys/class/block采用了短暂的方法。
#!/usr/bin/pythonimport ospartitionsFile = open("/proc/partitions")lines = partitionsFile.readlines()[2:]#Skips the header linesfor line in lines: words = [x.strip() for x in line.split()] minorNumber = int(words[1]) deviceName = words[3] if minorNumber % 16 == 0: path = "/sys/class/block/" + deviceName if os.path.islink(path): if os.path.realpath(path).find("/usb") > 0: print "/dev/%s" % deviceName我不确定它的便携性或可靠性,但是它可以用于我的USB记忆棒。当然
find("/usb")可以做成更严格的正则表达式。进行mod16可能也不是找到磁盘本身并筛选出分区的最佳方法,但到目前为止对我来说仍然有效。



