Prova questa:
import os
skippingWalk = lambda targetDirectory, excludedExtentions: (
(root, dirs, [F for F in files if os.path.splitext(F)[1] not in excludedExtentions])
for (root, dirs, files) in os.walk(targetDirectory)
)
for line in skippingWalk("C:/My_files/test", [".dat"]):
print line
Si tratta di un generatore di espressione che genera funzione lambda. Si passa un percorso e alcune estensioni e invoca os.walk con il percorso, filtra i file con estensioni nell'elenco di estensioni indesiderate utilizzando una comprensione di lista e restituisce il risultato.
(edit:. Rimuovere la dichiarazione .upper()
perché ci potrebbe essere una differenza reale tra le estensioni di caso diverso - se si desidera che questo sia case insensitive, aggiungere .upper()
dopo os.path.splitext(F)[1]
e passare le estensioni in stampatello)
non è e tale risposta è già stata fornita. – SilentGhost
non menzionare anche che non è chiaro cosa hai intenzione di fare nella riga successiva. – SilentGhost