Come posso elencare tutti i file di una directory in Python e aggiungerli a una lista
?
os.listdir()
vi darà tutto ciò che si trova in una directory - file e directory.
Se volete solo i file, potete filtrare il tutto usando os.path
:
from os import listdir
from os.path import isfile, join
onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]
oppure puoi usare os.walk()
che produrrà due liste per ogni directory che visita - dividendoti in file e dirs per te. Se volete solo la prima directory potete semplicemente interrompere la prima volta che produce
from os import walk
f = []
for (dirpath, dirnames, filenames) in walk(mypath):
f.extend(filenames)
break
Preferisco usare il modulo glob
, dato che fa il pattern matching e l'espansione.
import glob
print(glob.glob("/home/adam/*.txt"))
Restituirà una lista con i file ricercati:
['/home/adam/file1.txt', '/home/adam/file2.txt', .... ]