Pide diálogo de directorios múltiples en Tkinter

Estoy tratando de seleccionar varias carpetas. Necesito el equivalente de askopenfilenames() para directorios, pero solo existe askdirectory() , que solo permite seleccionar una carpeta.

Anteriormente encontré un script personalizado que hacía esto para Matlab ( uigetdir ). ¿Alguna forma de hacer esto en Python?

Necesito procesar por lotes los archivos en aproximadamente 50 carpetas a la vez, seleccionarlas una por una no es realista.

Además, no soy un progtwigdor, solo tratando de procesar mis datos geofísicos, no podría “codificarlos yo mismo” como he sugerido en otros lugares. Habría pensado que algo tan básico se incluiría en las funciones básicas.

El OP solicitó una solución con Tkinter que no está disponible, pero una solución es posible con wxPython-Phoenix

 ####### Retrieve a list of directories with wxPython-Phoenix - tested on python3.5 ### installation instruction for wxPython-Phoenix : https://wiki.wxpython.org/How%20to%20install%20wxPython#Installing_wxPython-Phoenix_using_pip ### modified from : https://wxpython.org/Phoenix/docs/html/wx.lib.agw.multidirdialog.html import os import wx import wx.lib.agw.multidirdialog as MDD # Our normal wxApp-derived class, as usual app = wx.App(0) dlg = MDD.MultiDirDialog(None, title="Custom MultiDirDialog", defaultPath=os.getcwd(), # defaultPath="C:/Users/users/Desktop/", agwStyle=MDD.DD_MULTIPLE|MDD.DD_DIR_MUST_EXIST) if dlg.ShowModal() != wx.ID_OK: print("You Cancelled The Dialog!") dlg.Destroy() paths = dlg.GetPaths() #Print directories' path and files for path in enumerate(paths): print(path[1]) directory= path[1].replace('OS (C:)','C:') print(directory) for file in os.listdir(directory): print(file) dlg.Destroy() app.MainLoop()