Hvordan viser jeg alle filene i en katalog?

Hvordan kan jeg liste opp alle filene i en katalog i Python og legge dem til i en "liste"?

os.listdir() gir deg alt som finnes i en katalog - filer og kataloger.

Hvis du vil ha bare filer, kan du enten filtrere dette ned ved hjelp av 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 bruke os.walk() som vil gi to lister for hver katalog den besøker - og dele opp i filer og kataloger for deg. Hvis du bare vil ha den øverste katalogen, kan du bare bryte den første gangen det gir

from os import walk

f = []
for (dirpath, dirnames, filenames) in walk(mypath):
    f.extend(filenames)
    break
Kommentarer (6)

Jeg foretrekker å bruke modulen glob, siden den gjør mønstermatching og utvidelse.

import glob
print(glob.glob("/home/adam/*.txt"))

Den returnerer en liste med de forespurte filene:

['/home/adam/file1.txt', '/home/adam/file2.txt', .... ]
Kommentarer (4)
import os
os.listdir("somedirectory")

vil returnere en liste over alle filer og kataloger i en katalog.

Kommentarer (3)