Ako vypíšem všetky súbory v adresári?

Ako môžem v jazyku Python vypísať všetky súbory v adresári a pridať ich do zoznamu?

os.listdir() vám zobrazí všetko, čo je v adresári - súbory a adresáre.

Ak chcete len súbory, môžete to buď filtrovať pomocou os.path:

from os import listdir
from os.path import isfile, join
onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]

alebo môžete použiť os.walk(), ktorý poskytne dva zoznamy pre každý adresár, ktorý navštívi - rozdelí ho na súbory a adresáre za vás. Ak chcete iba horný adresár, môžete ho jednoducho prerušiť, keď sa prvýkrát zobrazí

from os import walk

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

Radšej používam modul glob, pretože vykonáva porovnávanie vzorov a expanziu.

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

Vráti zoznam s dotazovanými súbormi:

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

vráti zoznam všetkých súborov a adresárov v adresári "somedirectory".

Komentáre (3)