Dažreiz, strādājot ar failiem Python, rodas problēma, kā iegūt visus failus direktorijā. Šajā rakstā mēs apskatīsim dažādas metodes kā uzskaitīt visus failu nosaukumus direktorijā programmā Python.
Failu darbību veikšana programmētājiem ir obligāta prasme. Failu darbību apguve, izmantojot Python, palīdz pārvaldīt failus, integrēt failus ar programmām, veidot reālas programmas utt. Mēs apskatīsim vissvarīgāko jēdzienu, kā uzskaitīt visus failus, kas atrodas noteiktā direktorijā.
Mēs apskatīsim divus moduļus un to attiecīgās funkcijas šajā apmācībā par failu nosaukumu un informācijas iekļaušanu direktorijā.
Kas ir Python direktorijs?
Direktorijs, ko dažreiz sauc par mapi, ir vienības organizatoriskā struktūra datora failu sistēmā, kas paredzēta failu vai vairāku mapju glabāšanai un atrašanai. Python tagad atbalsta vairākas API, lai uzskaitītu direktoriju saturu. Piemēram, mēs varam izmantot funkcijas Path.iterdir, os.scandir, os.walk, Path.rglob vai os.listdir.
Izmantotais direktorijs: gfg
Kā uzskaitīt failus Python direktorijā
Ir vairāki veidi, kā uzskaitīt visus failus direktorijā. Šajā rakstā mēs apspriedīsim tālāk norādītos moduļus un to funkcijas, lai ielādētu failu sarakstu direktorijā. Mēs apskatīsim kopā 5 veidus ar piemēriem, kā pārbaudīt failu sarakstu direktorijā.
- Izmantojot OS modulis
- Izmantojot glob modulis
Uzskaitiet failus direktorijā, izmantojot Python OS moduli
Mēs varam izmantot šīs 3 metodes OS modulis , lai iegūtu direktorijā esošo failu sarakstu.
- os.listdir() Metode
- os.walk() Metode
- os.scandir() Metode
Izmantojot os.listdir() metodi, lai iegūtu failu sarakstu
os.listdir() metode iegūst visu norādītajā direktorijā esošo failu un direktoriju sarakstu. Pēc noklusējuma tas ir pašreizējais direktorijs. Pārsniedzot pirmo mapju līmeni, os.listdir() neatgriež nevienu failu vai mapi.
Sintakse : os.listdir(path)
Parametri :
- Ceļš : direktorijas ceļš
Atgriešanas veids : atgriež visu norādītajā ceļā esošo failu un direktoriju sarakstu
1. piemērs: iegūstiet visu direktorijā esošo failu sarakstu
Šajā piemērā operētājsistēmas modulis ir importēts, lai mijiedarbotos ar operētājsistēmu. Funkciju listdir izmanto, lai iegūtu visu norādītajā ceļā (C://Users//Vanshi//Desktop//gfg) esošo failu un direktoriju sarakstu. Pēc tam rezultāts tiek izdrukāts, parādot norādītajā vietā esošo failu un direktoriju nosaukumus.
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)> |
string.compareto c#
>
>
Izvade:
2. piemērs: iegūstiet visus failus un nevienu mapi
Šajā piemērā Python programma pieprasa lietotājam norādīt mapes ceļu, kā arī uzskaita un izdrukā šajā direktorijā esošos failus, izmantojot OS moduli direktoriju mijiedarbībai un failu filtrēšanai no iegūtā saraksta.
Python3
firma pret uzņēmumu
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> => '
'> )> |
>
>
3. piemērs: no direktorija iegūstiet tikai “.txt” failus
Šajā piemērā Python skripts izmanto OS moduli, lai atkārtotu failus pašreizējā direktorijā. Tas selektīvi drukā tikai to failu nosaukumus, kas beidzas ar .txt, efektīvi uzskaitot direktorijā esošos teksta failus.
Python3
# import OS> import> os> for> x> in> os.listdir():> > if> x.endswith(> '.txt'> ):> > # Prints only text file present in My Folder> > print> (x)> |
>
>
Izvade:
Metodes os.walk() izmantošana, lai piekļūtu failiem direktoriju kokā
OS.walk() ģenerē failu nosaukumus direktoriju kokā. Šī funkcija atgriež failu sarakstu koka struktūrā. Metode veic cilpas caur visiem koka direktorijiem.
Sintakse: os.walk(augšā, augšā uz leju, kļūda, sekošanas saites )
Parametri:
- tops: Tas ir augšējais direktorijs, no kura vēlaties izgūt komponentu failu un mapju nosaukumus.
- no augšas uz leju: Norāda, ka direktoriji ir jāpārbauda no augšas uz leju, ja iestatīts uz True. Ja šis parametrs ir False, direktoriji tiks pārbaudīti no augšas uz leju.
- kļūda: Tas nodrošina kļūdu apstrādātāju, ja tiek konstatēta kļūda
- sekošanas saites : ja iestatīts uz True, apmeklē mapes, uz kurām atsaucas sistēmas saites
Atgriezties: atgriež katra faila un mapes nosaukumu direktorijā un jebkurā tā apakšdirektorijā.
Piemērs: direktorijā iegūstiet tikai .txt failus
Šajā piemērā Python skripts izmanto OS moduli, lai pārvietotos pa failiem norādītajā direktorijā (C://Users//Vanshi//Desktop//gfg) un tā apakšdirektorijos. Tas identificē un izdrukā failu nosaukumus ar paplašinājumu .txt, aizpildot saraksta mainīgo ar vajadzīgajiem teksta failiem.
cik liels ir mans monitors
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)> |
>
>
Izvade:
Izmantojot metodi os.scandir(), lai uzskaitītu failus direktorijā
os.scandir() ir efektīva funkcijas os.listdir() versija. Vēlāk to izlaida Python, un tas tiek atbalstīts Python 3.5 un jaunākām versijām.
Sintakse: os.scandir(ceļš)
Parametrs:
- Ceļš- Direktorijas ceļš.
Atgriešanas veids: atgriež objekta os.DirEntry iteratoru.
Piemērs: uzskaitiet visus failus un direktorijus direktorijā.
Šajā piemērā Python skripts izmanto OS moduli, lai uzskaitītu failus un direktorijus norādītajā ceļā (C://Users//Vanshi//Desktop//gfg). Tas izmanto os.scandir(), lai iegūtu os.DirEntry objektu iteratoru, kas pārstāv ierakstus direktorijā.
baiti uz virkni python
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)> |
>
>
Izvade:
Failu saraksts direktorijā, izmantojot Python glob moduli
The glob modulis izgūst failu/ceļu nosaukumus, kas atbilst noteiktam modelim. Tālāk ir norādīti veidi, kā mēs varam uzskaitīt failus direktorijā, izmantojot glob moduli:
- glob() Metode
- iglob() metodi
Izmantojot metodi glob(), lai iegūtu visus failus direktorijā
Ar glob , mēs varam izmantot aizstājējzīmes (*, ?, [diapazons]) lai ceļu meklēšana būtu vienkāršāka un ērtāka.
Sintakse: glob.glob(ceļa nosaukums, *, recursive=False)
Parametri:
- ceļa nosaukums : direktorija ceļš vai atbilstības modelis.
- rekursīvs (Neobligāti): Būla parametrs (noklusējuma vērtība ir iestatīta uz Nepatiesi ), kas norāda, vai meklēšanai jābūt rekursīvai, t.i., vai tajā jāietver apakšdirektoriji.
Atgriež:
- Atbilstošo failu ceļu saraksts
Piemērs: Python failu saskaņošana un drukāšana, izmantojot glob() metodi
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)> |
stacks java
>
>
Izvade:
Izmantojot iglob() metodi, lai uzskaitītu failus direktorijā
iglob() metodi var izmantot, lai rekursīvi drukātu failu nosaukumus, ja rekursīvais parametrs ir iestatīts uz True. To izmanto lieliem direktorijiem, jo tas ir efektīvāks par glob() metodi.
Sintakse: glob.iglob(ceļa nosaukums, *, recursive=False)
Parametrs:
- ceļa nosaukums = Direktorijas ceļš.
- rekursīvs (neobligāts)= Būla parametrs (noklusējuma vērtība ir iestatīta uz Nepatiesi ), kas norāda, vai meklēšanai jābūt rekursīvai, t.i., vai tajā jāietver apakšdirektoriji.
Atgriež: Atbilstošu failu ceļu iterators
Piemērs: Drukājiet ceļus, kas atbilst norādītajam paraugam direktorijā.
Šajā piemērā Python skripts izmanto glob moduli, lai atrastu un drukātu ceļus, kas atbilst norādītajam modelim (C:UsersVanshiDesktopgfg***.txt). Tas izmanto glob.iglob(), lai atgrieztu iteratoru, kas pēc tam tiek izmantots visu norādītajā direktorijā un tā apakšdirektorijā esošo teksta failu ceļu drukāšanai.
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> )> |
>
>
Izvade:
Šie ir 5 veidi, ko varat izmantot, lai iegūtu informāciju par failiem un direktorijiem direktorijā. Python ir nodrošinājis vairākas iebūvētas metodes, kuras varat izmantot, lai uzzinātu direktorijā esošos failus. Šajā apmācībā tika parādītas vienkāršas metodes ar piemēriem, lai saprastu, kā iegūt failu sarakstus, izmantojot OS moduli un glob moduli.
Līdzīgi skan:
- Norādiet failus direktorijā ar paplašinājumu
- Uzskaitiet visus noteikta veida failus direktorijā, izmantojot Python
- Direktoriju un failu uzskaitīšana programmā Python
- Iegūstiet failu sarakstu direktorijā ar izmēru
- Failu apstrāde programmā Python