Hoe kan ik in Python alle bestanden van een map opnoemen en ze toevoegen aan een lijst
?
os.listdir()
zal je alles geven wat'in een directory zit - bestanden en directories.
Als je alleen bestanden wilt, kun je dit filteren met os.path
:
from os import listdir
from os.path import isfile, join
onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]
of je kunt os.walk()
gebruiken, die je twee lijsten zal geven voor elke directory die hij bezoekt - opgesplitst in bestanden en dirs voor jou. Als je alleen de bovenste directory wilt, kun je de eerste keer dat het resultaat is
from os import walk
f = []
for (dirpath, dirnames, filenames) in walk(mypath):
f.extend(filenames)
break
Ik gebruik liever de glob
module, omdat die patronen matcht en uitbreidt.
import glob
print(glob.glob("/home/adam/*.txt"))
Het zal een lijst teruggeven met de opgevraagde bestanden:
['/home/adam/file1.txt', '/home/adam/file2.txt', .... ]