Hvordan kan jeg liste alle filer i en mappe i Python og tilføje dem til en list
?
os.listdir()
giver dig alt, hvad der findes i en mappe - filer og mapper.
Hvis du vil have kun filer, kan du enten filtrere dette ned ved hjælp af [os.path
]](https://docs.python.org/2/library/os.path.html#module-os.path):
from os import listdir
from os.path import isfile, join
onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]
eller du kan bruge os.walk()
, som vil give to lister for hver mappe, den besøger - og opdele den i filer og dirs for dig. Hvis du kun vil have den øverste mappe, kan du bare bryde den første gang den giver
from os import walk
f = []
for (dirpath, dirnames, filenames) in walk(mypath):
f.extend(filenames)
break
Jeg foretrækker at bruge glob
modulet, da det kan udføre mønstermatchning og udvidelse.
import glob
print(glob.glob("/home/adam/*.txt"))
Det returnerer en liste med de forespurgte filer:
['/home/adam/file1.txt', '/home/adam/file2.txt', .... ]