How to get the capacity of a usb pendrive?

261 views Asked by At

I need to get the capacity of a usb pendrive that is unmounted. I'm using pyudev to detect it, but I don't know how to get the capacity. I read some documentation about pyusb, but I haven't found anything of useful. Any idea?

1

There are 1 answers

0
Lews On BEST ANSWER

The following code taken from here works pretty well:

def query_hdd_model() -> t.Dict[str, dict]:
    """Get information about all hard drives."""
    if not HDD:
        return {}
    context = pyudev.Context()
    hdds = {}
    for device in context.list_devices(subsystem='block', DEVTYPE='disk'):
        if any(_ in device.device_path for _ in IGNORED_DEVICE_PATHS):
            continue
        hdd = {'size': device.attributes.asint('size')}
        for device_ in itertools.chain([device], device.ancestors):
            try:
                hdd['model'] = device_.attributes.asstring('model')
                break
            except KeyError:
                hdd['model'] = ''
        hdds[device.device_node] = hdd

the exact line is the following:

    hdd = {'size': device.attributes.asint('size')}