Hvordan får jeg en liste over alle filer i en mappe?

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
Kommentarer (6)

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', .... ]
Kommentarer (4)
import os
os.listdir("somedirectory")

returnerer en liste over alle filer og mapper i "somedirectory".

Kommentarer (3)