Za pridobitev seznama imen datotek in imenikov (imen map) v Pythonu uporabite funkcijo modula os os.listdir().
os.listdir(path='.')
Vrne seznam z imeni vnosov v imeniku, ki ga določa pot.
os — Miscellaneous operating system interfaces — Python 3.10.0 Documentation
Modul os je vključen v standardno knjižnico in ga ni treba namestiti. Vendar je potreben ukaz “uvoz”.
Tu so na voljo naslednje informacije.
- Pridobi seznam imen datotek in imenikov.
- Pridobi samo seznam imen datotek
- Pridobi samo seznam imen imenikov
V nadaljevanju je prikazan primer strukture datotek (imenikov).
. └── testdir ├── dir1 ├── dir2 ├── file1 ├── file2.txt └── file3.jpg
Poleg modula os.listdir() lahko za pridobitev seznama imen datotek in imenikov (imen map) uporabite tudi modul glob. glob omogoča določanje pogojev z uporabo nadomestnih znakov (*) itd. in rekurzivno vključevanje podimenikov.
V Pythonu 3.4 in novejših je mogoče dobiti seznam datotek in imenikov tudi z modulom pathlib, ki lahko upravlja poti kot predmete. Podobno kot globs zgoraj ga je mogoče uporabljati pogojno in rekurzivno.
Pridobi seznam imen datotek in imenikov.
Če uporabite os.listdir(), kot je, bo vrnil seznam imen datotek in imenikov.
import os path = "./testdir" files = os.listdir(path) print(type(files)) # <class 'list'> print(files) # ['dir1', 'dir2', 'file1', 'file2.txt', 'file3.jpg']
Dobite seznam nizov poti.
Pridobi samo seznam imen datotek
Če želite dobiti le seznam imen datotek, uporabite funkcijo os.path.isfile(), da ugotovite, ali je pot datoteka. če funkciji os.path.isfile() kot argument posredujete le ime datoteke, to ne bo delovalo, zato posredujete celotno pot, kot je prikazano spodaj.os.path.isfile(os.path.join(path, f))
files = os.listdir(path) files_file = [f for f in files if os.path.isfile(os.path.join(path, f))] print(files_file) # ['file1', 'file2.txt', 'file3.jpg']
Pridobi samo seznam imen imenikov
Če želite dobiti le seznam imen imenikov, uporabite os.path.isdir() na enak način.
files = os.listdir(path) files_dir = [f for f in files if os.path.isdir(os.path.join(path, f))] print(files_dir) # ['dir1', 'dir2']