Ho cercato ovunque questa risposta ma non la trovo.Come verificare se una cartella contiene file usando python 3
Sto provando a creare uno script che cercherà una sottocartella particolare, quindi controlla se contiene file e, in caso affermativo, scrive il percorso della cartella. Ho trovato la parte di ricerca nella sottocartella, ma il controllo dei file mi ha bloccato.
Ho trovato più suggerimenti su come verificare se una cartella è vuota e ho provato a modificare gli script per verificare se la cartella non è vuota, ma non ottengo i risultati corretti.
Ecco lo script che è venuto il più vicino:
for dirpath, dirnames, files in os.walk('.'):
if os.listdir(dirpath)==[]:
print(dirpath)
Questo elenco di tutte le sottocartelle che sono vuoti, ma se provo a cambiare a:
if os.listdir(dirpath)!=[]:
print(dirpath)
che verrà elencare tutto --non solo quelle sottocartelle contenenti file.
Apprezzerei molto se qualcuno potesse indicarmi la giusta direzione.
Questo è per Python 3.4, se questo è importante.
Grazie per l'aiuto che mi puoi dare.
Con "vuoto" intendi "non contiene nulla (eccetto' .' e '..')", o "non contiene nient'altro che sottodirectory", o "non contiene file regolari" o "non contiene file normali non nascosti" o qualcosa di diverso? – abarnert
Nel frattempo, perché stai usando 'os.walk' e poi anche usando' os.listdir' su ogni 'dirpath'?Hai già i 'dirnames' e' files'; perché chiamare una funzione per ottenere le stesse informazioni che hai già? – abarnert
Infine, quasi mai si desidera controllare '! = []' O '== []'. Basta usare il fatto che le sequenze vuote sono false, mentre le sequenze non vuote sono verità: 'se non os.listdir (dirpath):' farebbe quello che vuoi. – abarnert