Hogyan tudom felsorolni egy könyvtár összes fájlját Pythonban és hozzáadni őket egy list
-hez?
os.listdir()
mindent megkapsz, ami egy könyvtárban van - fájlokat és könyvtárakat.
Ha csak fájlokat akarsz, akkor ezt vagy a os.path
segítségével szűrheted le:
from os import listdir
from os.path import isfile, join
onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]
vagy használhatod az os.walk()
parancsot, amely két listát ad minden egyes meglátogatott könyvtárhoz - fájlokra és könyvtárakra bontva. Ha csak a legfelső könyvtárra van szükséged, akkor egyszerűen megszakíthatod az első alkalommal, amikor a következő eredményt kapod
from os import walk
f = []
for (dirpath, dirnames, filenames) in walk(mypath):
f.extend(filenames)
break
Jobban szeretem a glob
modult használni, mivel az mintaillesztést és bővítést végez.
import glob
print(glob.glob("/home/adam/*.txt"))
Visszaad egy listát a lekérdezett fájlokkal:
['/home/adam/file1.txt', '/home/adam/file2.txt', .... ]
import os
os.listdir("somedirectory")
a "valamilyen könyvtárban" található összes fájl és könyvtár listáját adja vissza.