logo

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 attiterera ö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


np.klipp



# 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: