Caixa de diálogo Ask multiple directories no Tkinter

Eu estou tentando selecionar várias pastas. Eu preciso do equivalente a askopenfilenames() para diretórios, mas somente askdirectory() existe, o que permite apenas selecionar uma pasta.

Anteriormente, encontrei um script personalizado que fazia isso para o Matlab ( uigetdir ). Qualquer maneira de fazer isso em Python?

Eu preciso processar arquivos em lote em cerca de 50 pastas de cada vez, selecionando-as uma por uma não é realista.

Além disso, eu não sou um programador, apenas tentando processar meus dados geofísicos, não seria capaz de “codificar a mim mesmo”, como eu já vi sugerido em outros lugares. Teria pensado que algo tão básico seria incluído nas funções básicas.

O OP pediu uma solução com o Tkinter que não está disponível, mas uma solução é possível com o 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() 
    Intereting Posts