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
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', .... ]