A one liner to get all drivers (GDAL + OGR) (more or less 210 drivers) ```bash python -c "from osgeo import gdal;print('\n'.join(sorted([gdal.GetDriver(i).GetDescription() for i in range(gdal.GetDriverCount())])))" ``` You can also filter drivers to get only GDAL one using the following (or you will not get the same number of drivers output as `gdal_translate --formats` e.g 136 on my machine) I also display if driver support only raster or both raster and vector, I also display the other capabilities (read/write, support vsi,...). The logic is a port of [the equivalent C++ code][1] ``` from osgeo import gdal all_driver_names = [gdal.GetDriver(i).GetDescription() for i in range(gdal.GetDriverCount())] gdal_driver_names = [driver_name for driver_name in all_driver_names if gdal.GetDriverByName(driver_name).GetMetadataItem('DCAP_RASTER') == 'YES'] driver_type = { 'DCAP_RASTER': 'raster', 'DCAP_MULTIDIM_RASTER': 'multidimensional raster', 'DCAP_VECTOR': 'vector', 'DCAP_GNM': 'geography network' } for driver_name in gdal_driver_names: driver = gdal.GetDriverByName(driver_name) driver_shortname = driver.ShortName # Get short name driver_types = ','.join([driver_type[t] for t in driver_type.keys() if driver.GetMetadataItem(t) == 'YES']) # Get if driver support raster and vector or only raster pszRFlag = "" if driver.GetMetadataItem('DCAP_OPEN') == 'YES': pszRFlag = "r"; pszWFlag = "" if driver.GetMetadataItem('DCAP_CREATE') == 'YES': pszWFlag = "w+"; elif driver.GetMetadataItem('DCAP_CREATECOPY') == 'YES': pszWFlag = "w"; else: pszWFlag = "o"; pszVirtualIO = "" if driver.GetMetadataItem('DCAP_VIRTUALIO') == 'YES': pszVirtualIO = "v"; pszSubdatasets = "" if driver.GetMetadataItem('DMD_SUBDATASETS') == 'YES': pszSubdatasets = "s"; driver_longname = driver.LongName # Get Long name print(f"{driver_shortname} -{driver_types}- ({pszRFlag}{pszWFlag}{pszVirtualIO}{pszSubdatasets}): {driver_longname}") ``` [1]: https://github.com/OSGeo/gdal/blob/d0a12d1a74e08557605f57cf2d94dac82b9fdda9/gdal/gcore/gdal_misc.cpp#L3088