Il giorno 31 maggio 2017 22:31, Daniele Zambelli <daniele.zambe...@gmail.com > ha scritto:
> > Non ho capito bene il problema, ma, forse, puoi fare la lista dei file > della cartella prima di espandere lo zip e dopo averlo espanso, dal > confronto dovresti trovare le cartelle create. > > In realtà volevo evitare di fare un controllo sui file. Comunque ho seguito il tuo consiglio e ho risolto così: ``` with zipfile.ZipFile(sfile.filename, 'r') as zfile: # recupero la lista dei nomi dei file nello zip lst = zfile.namelist() # tengo conto del primo nella lista, se è una cartella DOVREBBE essere # la root. first = lst[0] # comunque imposto la path iniziale al nome dello zip senza estensione. path = splitext(basename(zfile.filename))[0] # Se il primo file in lista non comincia con il nome della path # *pronosticata* allora provo altre strade. if not first.startswith(path): # proviamo a impostare la path con il nome del primo file in lista # se questo finisce con / (quindi è una cartella). Altrimenti # impostiamo la path a *stringa vuota* path = first if first.endswith('/') else '' if path: # ok creiamo una lista di percorsi relativi alla path # probabile (omettiamo i file con wildcards, almeno per ora). files = [ join(path, f.filename) for f in sfile.files if not '*' in f.filename] # ok ora che abbiamo creato la lista confrontiamo i percorsi # con quelli presenti nello zip. if not all([f in lst for f in files]): # a questo punto se tutti i file previsti NON sono nella # lista reimpostiamo la path a *stringa vuota*. # questo farà si che i successivi join siano relativi alla # cartella temporanea. path = '' # Non è ancora sicuro che il percorso sia corretto, ma in linea di # massima a questo punto si può agire sulla configurazione. ``` Oltretutto a questo punto estraggo direttamente i file che mi servono. grazie. -- Luca
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python