Hur man itererar över filer i katalogen med Python?
Katalog även ibland känd som en mapp är enhetsorganisationsstruktur i ett systems filsystem för att lagra och lokalisera filer eller fler mappar. Python som skriptspråk tillhandahåller olika metoder för att iterera över filer i en katalog.
Nedan finns de olika tillvägagångssätten genom att använda vilka man kan iterera över filer i en katalog med python:
Metod 1: os.listdir()
Denna funktion returnerar listan över filer och underkataloger finns i den givna katalogen. Vi kan filtrera listan för att bara få filerna som använder os.path.isfile() fungera:
Exempel:
Python3
# import required module> import> os> # assign directory> directory> => 'files'> # iterate over files in> # that directory> for> filename> in> os.listdir(directory):> > f> => os.path.join(directory, filename)> > # checking if it is a file> > if> os.path.isfile(f):> > print> (f)> |
Produktion:
Metod 2: os.scandir()
Denna metod används för att få en iterator av os.DirEntry objekt som motsvarar posterna i katalogen som ges av angiven sökväg.
Exempel:
Python3
# import required module> import> os> # assign directory> directory> => 'files'> # iterate over files in> # that directory> for> filename> in> os.scandir(directory):> > if> filename.is_file():> > print> (filename.path)> |
Produktion:
Metod 3: pathlib-modul
Vi kan iterera över filer i en katalog med hjälp av Path.glob() funktion som globbar det angivna mönstret i den givna katalogen och ger de matchande filerna. Path.glob('*') ger alla filer i den givna katalogen
Exempel:
Python3
# import required module> from> pathlib> import> Path> # assign directory> directory> => 'files'> # iterate over files in> # that directory> files> => Path(directory).glob(> '*'> )> for> file> in> files:> > print> (> file> )> |
Produktion:
Metod 4: os.walk()
Vi kan också söka efter underkataloger med denna metod eftersom den ger en 3-tuppel (dirpath, dirnames, filnamn) .
- rot : Skriver ut kataloger endast från det du angett.
- säga : Skriver ut underkataloger från roten.
- filer : Skriver ut alla filer från rot och kataloger.
Python3
# import required module> import> os> # assign directory> directory> => 'files'> # iterate over files in> # that directory> for> root, dirs, files> in> os.walk(directory):> > for> filename> in> files:> > print> (os.path.join(root, filename))> |
Produktion:
Metod 5: globmodul
De glob.iglob() funktion returnerar en iterator över listan med sökvägsnamn som matchar det givna mönstret.
Exempel:
Python3
# import required module> import> glob> # assign directory> directory> => 'files'> # iterate over files in> # that directory> for> filename> in> glob.iglob(f> '{directory}/*'> ):> > print> (filename)> |
Produktion: