Soms ontstaat er tijdens het werken met bestanden in Python een probleem met de manier waarop alle bestanden in een map kunnen worden geplaatst. In dit artikel bespreken we verschillende methoden van hoe u alle bestandsnamen in een directory kunt weergeven in Python.
Het uitvoeren van bestandsbewerkingen is een onmisbare vaardigheid voor programmeurs. Het leren van bestandsbewerkingen met behulp van Python helpt bij het beheren van bestanden, het integreren van bestanden met uw programma's, het bouwen van echte programma's, enz. We zullen het meest fundamentele concept behandelen van het opsommen van alle bestanden die aanwezig zijn in een specifieke map.
We behandelen twee modules en hun respectievelijke functies voor deze tutorial over het weergeven van bestandsnamen en details in een map.
Wat is een map in Python?
Een map, ook wel een map genoemd, is een organisatiestructuur in het bestandssysteem van een computer voor het opslaan en lokaliseren van bestanden of meer mappen. Python ondersteunt nu verschillende API's om de mapinhoud weer te geven. We kunnen bijvoorbeeld de functies Path.iterdir, os.scandir, os.walk, Path.rglob of os.listdir gebruiken.
Directory in gebruik: gfg
Hoe bestanden in een map in Python te vermelden
Er zijn meerdere manieren om alle bestanden in een map weer te geven. In dit artikel bespreken we de onderstaande modules en hun functies om de lijst met bestanden in een map op te halen. We zullen in totaal 5 manieren behandelen met voorbeelden om de lijst met bestanden in een map te controleren.
- Gebruik makend van OS-module
- Gebruik makend van glob-module
Geef bestanden in een map weer met behulp van de Os-module in Python
We kunnen deze 3 methoden van de OS-module , om een lijst met bestanden in een map te krijgen.
- os.listdir() Methode
- os.walk() Methode
- os.scandir() Methode
Gebruik de methode os.listdir() om de lijst met bestanden op te halen
os.listdir() methode haalt de lijst op met alle bestanden en mappen in een opgegeven map. Standaard is dit de huidige map. Buiten het eerste mapniveau retourneert os.listdir() geen bestanden of mappen.
Syntaxis : os.listdir(pad)
Parameters :
- Pad : Pad van de map
Retourtype : retourneert een lijst met alle bestanden en mappen in het opgegeven pad
Voorbeeld 1: Haal een lijst op met alle bestanden in een map
In dit voorbeeld wordt de os-module geïmporteerd om te communiceren met het besturingssysteem. De listdir-functie wordt gebruikt om een lijst te verkrijgen van alle bestanden en mappen in het opgegeven pad (C://Users//Vanshi//Desktop//gfg). Het resultaat wordt vervolgens afgedrukt, waarbij de namen van bestanden en mappen op de opgegeven locatie worden weergegeven.
Python3
# import OS module> import> os> # Get the list of all files and directories> path> => ' C://Users//Vanshi//Desktop//gfg '> dir_list> => os.listdir(path)> print> (> 'Files and directories in ''> , path,> '' :'> )> # prints all files> print> (dir_list)> |
methode substring java
>
>
Uitgang:
Voorbeeld 2: Haal alle bestanden op en geen mappen
In dit voorbeeld vraagt het Python-programma de gebruiker om een mappad en worden de bestanden in die map weergegeven en afgedrukt, waarbij gebruik wordt gemaakt van de os-module voor mapinteractie en het filteren van bestanden uit de verkregen lijst.
Python3
import> os> print> (> 'Python Program to print list the files in a directory.'> )> Direc> => input> (r> 'Enter the path of the folder: '> )> print> (f> 'Files in the directory: {Direc}'> )> files> => os.listdir(Direc)> # Filtering only the files.> files> => [f> for> f> in> files> if> os.path.isfile(Direc> +> '/'> +> f)]> print> (> *> files, sep> => '
'> )> |
>
>
Voorbeeld 3: Haal alleen ‘.txt’-bestanden uit de map
In dit voorbeeld gebruikt het Python-script de os-module om door bestanden in de huidige map te bladeren. Het drukt selectief alleen de namen af van bestanden die eindigen op .txt, waardoor in feite de tekstbestanden in de map worden weergegeven.
Python3
Java sorteert een arraylist
# import OS> import> os> for> x> in> os.listdir():> > if> x.endswith(> '.txt'> ):> > # Prints only text file present in My Folder> > print> (x)> |
>
>
Uitgang:
beperkingen van elektronisch bankieren
De methode os.walk() gebruiken om toegang te krijgen tot bestanden in een directorystructuur
OS.walk() genereert bestandsnamen in een directorystructuur. Deze functie retourneert een lijst met bestanden in een boomstructuur. De methode doorloopt alle mappen in een boom.
Syntaxis: os.walk(top, topdown, onerror, followlinks )
Parameters:
- bovenkant: Het is de bovenste map waaruit u de namen van de componentbestanden en -mappen wilt ophalen.
- ondersteboven: Specificeert dat mappen van boven naar beneden moeten worden gescand als deze is ingesteld op True. Als deze parameter False is, worden mappen van boven naar beneden onderzocht.
- een fout: Het biedt een foutafhandelaar als er een fout optreedt
- volglinks : indien ingesteld op True, worden mappen bezocht waarnaar wordt verwezen door systeemkoppelingen
Opbrengst: retourneert de naam van elk bestand en elke map in een map en alle submappen ervan.
Voorbeeld: haal alleen ‘.txt’-bestanden op in een map
In dit voorbeeld gebruikt het Python-script de os-module om door bestanden in de opgegeven map (C://Users//Vanshi//Desktop//gfg) en de submappen ervan te bladeren. Het identificeert en drukt de namen af van bestanden met de extensie .txt, waarbij de lijstvariabele wordt gevuld met de gewenste tekstbestanden.
Python3
# import OS module> import> os> # This is my path> path> => ' C://Users//Vanshi//Desktop//gfg '> # to store files in a list> list> => []> # dirs=directories> for> (root, dirs,> file> )> in> os.walk(path):> > for> f> in> file> :> > if> '.txt'> in> f:> > print> (f)> |
>
>
Uitgang:
De methode os.scandir() gebruiken om bestanden in een map weer te geven
os.scandir() is een efficiënte versie van de functie os.listdir(). Het werd later uitgebracht door Python en wordt ondersteund voor Python 3.5 en hoger.
Syntaxis: os.scandir(pad)
Parameter:
- Pad- Pad van de map.
Retourtype: retourneert een iterator van het os.DirEntry-object.
Voorbeeld: maak een lijst van alle bestanden en mappen in een map.
In dit voorbeeld gebruikt het Python-script de os-module om bestanden en mappen in het opgegeven pad weer te geven (C://Users//Vanshi//Desktop//gfg). Het maakt gebruik van os.scandir() om een iterator van os.DirEntry-objecten te verkrijgen die vermeldingen in de directory vertegenwoordigen.
Python3
# import OS module> import> os> # This is my path> path> => ' C://Users//Vanshi//Desktop//gfg '> # Scan the directory and get> # an iterator of os.DirEntry objects> # corresponding to entries in it> # using os.scandir() method> obj> => os.scandir()> # List all files and directories in the specified path> print> (> 'Files and Directories in '% s':'> %> path)> for> entry> in> obj:> > if> entry.is_dir()> or> entry.is_file():> > print> (entry.name)> |
np.histogram
>
>
Uitgang:
Geef bestanden in een map weer met behulp van de glob-module in Python
De klodder module haalt bestanden/padnamen op die overeenkomen met een opgegeven patroon. Hieronder staan de manieren waarop we bestanden in een map kunnen weergeven met behulp van de glob-module:
- klodder() Methode
- iglo() methode
Gebruik de glob() methode om alle bestanden in een map op te halen
Met klodder , kunnen we jokertekens gebruiken (*, ?, [bereiken]) om het terugvinden van paden eenvoudiger en handiger te maken.
Syntaxis: glob.glob(padnaam, *, recursief=False)
Parameters:
- padnaam : het pad van de map of het bijbehorende patroon.
- recursief (Optioneel): Een Booleaanse parameter (standaardwaarde is ingesteld op Vals ) dat aangeeft of de zoekopdracht recursief moet zijn, d.w.z. of deze submappen moet bevatten.
Geeft terug:
- Lijst met overeenkomende bestandspaden
Voorbeeld: Python-bestanden matchen en afdrukken met behulp van de glob()-methode
Python3
import> glob> # This is my path> path> => 'C:UsersVanshiDesktopgfg'> # Using '*' pattern> print> (> '
Named with wildcard *:'> )> for> files> in> glob.glob(path> +> '*'> ):> > print> (files)> # Using '?' pattern> print> (> '
Named with wildcard ?:'> )> for> files> in> glob.glob(path> +> '?.txt'> ):> > print> (files)> # Using [0-9] pattern> print> (> '
Named with wildcard ranges:'> )> for> files> in> glob.glob(path> +> '/*[0-9].*'> ):> > print> (files)> |
>
>
Uitgang:
De iglo()-methode gebruiken om bestanden in een map weer te geven
iglo() methode kan worden gebruikt om bestandsnamen recursief af te drukken als de recursieve parameter is ingesteld op True. Dit wordt gebruikt voor grote mappen omdat het efficiënter is dan de glob()-methode.
acteur zeenat aman
Syntaxis: glob.iglob(padnaam, *, recursief=False)
Parameter:
- padnaam = Pad van de map.
- recursief (optioneel)= Een Booleaanse parameter (standaardwaarde is ingesteld op Vals ) dat aangeeft of de zoekopdracht recursief moet zijn, dat wil zeggen of deze submappen moet bevatten.
Geeft terug: Iterator van overeenkomende bestandspaden
Voorbeeld: afdrukpaden die overeenkomen met het opgegeven patroon in een map.
In dit voorbeeld gebruikt het Python-script de glob-module om paden te vinden en af te drukken die overeenkomen met het opgegeven patroon (C:UsersVanshiDesktopgfg***.txt). Het maakt gebruik van glob.iglob() om een iterator terug te geven, die vervolgens wordt gebruikt om de paden af te drukken van alle tekstbestanden in de opgegeven map en de submappen ervan.
Python3
import> glob> # This is my path> path> => 'C:UsersVanshiDesktopgfg***.txt'> # It returns an iterator which will> # be printed simultaneously.> print> (> '
Using glob.iglob()'> )> # Prints all types of txt files present in a Path> for> file> in> glob.iglob(path, recursive> => True> ):> > print> (> file> )> |
>
>
Uitgang:
Dit zijn de vijf manieren waarop u details van bestanden en mappen in een map kunt krijgen. Python heeft meerdere ingebouwde methoden geleverd die u kunt gebruiken om te weten welke bestanden in een map aanwezig zijn. Deze tutorial toonde eenvoudige methoden met voorbeelden om te begrijpen hoe u bestandsvermeldingen kunt verkrijgen met de os-module en glob-module.
Soortgelijke luidt:
- Geef bestanden weer in de map met extensie
- Maak een lijst van alle bestanden van een bepaald type in een map met behulp van Python
- Lijst van mappen en bestanden in Python
- Krijg een lijst met bestanden in de map met grootte
- Bestandsbeheer in Python