Cum să listați fișierele dintr-un director folosind Python?

În acest tutorial, acoperim tot ce trebuie să știți despre cum să listați fișierele dintr-un director folosind Python. Python este un limbaj de uz general, utilizat într-o varietate de domenii precum știința datelor, învățarea automată și chiar în dezvoltarea Web. Se pare că nu există nicio restricție în aplicarea limbajului Python.prin urmare, se pare destul de trivial Python poate fi folosit pentru a lista fișiere și directoare în orice sistem., Scopul acestui articol este de a ilumina cititorul despre modalitățile de listare a fișierelor într-un sistem folosind Python.

Lista Toate Fișierele într-un Director Folosind Python

în scopul de a interacționa cu directoare într-un sistem folosind Python, os library este folosit.

1. Folosind biblioteca ” os ”

metoda pe care o vom exercita pentru motivul nostru este listdir(). După cum sugerează și numele, este folosit pentru a lista elementele din directoare.,

# Importing the os libraryimport os# The path for listing itemspath = '.'# The list of itemsfiles = os.listdir(path)# Loop to print each filename separatelyfor filename in files:print(filename)

Ieșire:

game_file.pyhi-lo_pygame.pyJournaldevlist_files1.pyhi_lo_pygame.mp4test.pylist_files.pymy_program.cppa.outcut.cpp

utilizatorii de Linux pot potrivi cu ușurință mai sus de ieșire folosind standard ls comanda de pe terminal.

Elemente de Listă, folosind ” ls ” comanda

după Cum putem vedea rezultatele de la fiecare metodă se potrivește.

2., Folosind ‘glob’ biblioteca

glob este cea mai mare parte un nume de fișier de potrivire de model de bibliotecă, dar poate fi folosit pentru a lista elementele din directorul curent prin:

Ieșire:

game_file.pyhi-lo_pygame.pyJournaldevlist_files1.pyhi_lo_pygame.mp4test.pylist_files.pymy_program.cppa.outcut.cpp

metacaracter '*' este folosit pentru a se potrivi toate elementele din directorul curent. Deoarece dorim să afișăm elementele din directorul curent, trebuie să oprim natura recursivă a funcției glob().

3., Listează numai fișierele din directorul curent

în metodele de mai sus, codul python returnează toate elementele din directorul curent, indiferent de natura lor. Putem extrage doar fișierele folosind funcția path.isfile()din biblioteca os.

Ieșire:

game_file.pyhi-lo_pygame.pylist_files1.pyhi_lo_pygame.mp4test.pylist_files.pymy_program.cppa.outcut.cpp

În fragmentul de cod de mai sus, Lista de Înțelegere este folosit pentru a filtra doar acele elemente care sunt, de fapt, un fișier.,

un Alt lucru important de reținut aici este că, codul de mai sus nu funcționează pentru alte directoare ca variabila 'f' nu este o cale absolută, dar o cale relativă la directorul curent.

listați recursiv toate fișierele dintr-un director

pentru a imprima fișierele într-un director și subdirectoarele acestuia, trebuie să le traversăm recursiv.

1. Folosind biblioteca ” os ”

cu ajutorul metodei walk(), putem traversa fiecare subdirector într-un director unul câte unul.,

Output:

os.walk() metoda urmează pur și simplu fiecare subdirector și extrage fișierele în mod implicit de sus în jos. Există trei iteratori folosit pentru a merge prin ieșirea de os.walk() funcția:

  • path – Această variabilă conține prezent director funcția este observarea în timpul o anumită iterație
  • folders – Această variabilă este o listă de directoare în interiorul 'path' director.,
  • files – o listă de fișiere din directorul 'path'.

metodajoin() este utilizată pentru a concatena numele fișierului cu directorul părinte, oferindu-ne calea relativă către Fișier.

2. Folosind biblioteca ‘glob’

Similar cu procedura de mai sus, glob poate vizita recursiv fiecare director și extrage toate elementele și să le returneze.,

Ieșire:

'**' simbolul utilizat împreună cu variabila path spune glob() function pentru a se potrivi fișierele în orice subdirector. '*' spune funcției să se potrivească cu toate elementele dintr-un director.deoarece dorim să extragem doar fișierele din directorul complet, filtrăm fișierele folosind funcția isfile() folosită anterior.

listați toate subdirectoarele dintr-un director

în loc să listați fișierele, putem enumera toate subdirectoarele prezente într-un anumit director.,

Ieșire:

./Documents/Journaldev

diferență minoră între listă de fișiere și directoare este de selecție de iterator în timpul procesului de os.walk() function. Pentru fișiere, vom itera peste variabila fișiere. Aici, vom bucla peste variabila foldere.

listați fișierele într-un director cu calea absolută

odată ce știm cum să listați fișierele într-un director, atunci afișarea căii absolute este o bucată de tort. Metoda abspath() ne oferă calea absolută pentru un fișier.,

Ieșire:

Un lucru de remarcat aici este că abspath() trebuie să fie prevăzute cu cale relativă a fișierului și care este scopul join() function.

listați fișierele dintr-un director prin potrivirea tiparelor

există mai multe modalități de a filtra numele fișierelor care se potrivesc unui anumit model. Să trecem prin fiecare dintre ele unul câte unul.

1. Folosind ‘fnmatch’ biblioteca

după Cum sugerează și numele, fnmatch este un nume de fișier de potrivire de model de bibliotecă., Folosind fnmatch cu bibliotecile noastre standard de extragere a numelui de fișier, putem filtra acele fișiere care se potrivesc cu un model specific.

Output:

List of files containing "file" in them./Documents/game_file.py./Documents/list_files1.py./Documents/list_files.py

funcția fnmatch() are doi parametri, numele fișierului urmat de modelul de potrivire. În codul de mai sus, ne uităm la toate fișierele care conțin cuvântul file în ele.

2. Folosind biblioteca ‘glob’

așa cum am menționat anterior, glob's scopul principal este potrivirea modelului de nume de fișier.,

Ieșire:

./Documents/list_files1.py

modelul De mai sus de potrivire expresie regulată '**/**.*' poate fi explicat ca:

3. Folosind biblioteca „pathlib”

pathlib urmează un mod orientat pe obiecte de a interacționa cu sistemul de fișiere. Funcția rglob() din bibliotecă poate fi utilizată pentru a extrage recursiv lista de fișiere printr-un anumit obiect Path.

aceste liste de fișiere pot fi filtrate folosind un model în cadrul funcției rglob().,

Ieșire:

Documents/my_program.cppDocuments/Journaldev/mastermind.py

Cele de mai sus fragment de cod este folosit pentru a lista toate fișierele care încep cu litera 'm'.

listarea fișierelor într-un director cu o extensie specifică

listarea fișierelor cu o extensie specifică în Python este oarecum similară cu potrivirea modelului. În acest scop, trebuie să creăm un model în ceea ce privește extensia de fișier.

Ieșire:

fnmatch() funcția de filtre acele fișiere care se încheie cu '.py', care este python fișiere., Dacă dorim să extragem fișiere cu extensii diferite, atunci trebuie să modificăm această parte a codului. De exemplu, pentru a prelua numai fișierele C++, trebuie utilizat '.cpp'.

aceasta rezumă modalitățile de preluare a listei de fișiere dintr-un director folosind Python.

concluzie

pot exista mai multe modalități de a rezolva orice problemă la îndemână, iar cea mai convenabilă nu este întotdeauna răspunsul. În ceea ce privește acest articol, un programator Python trebuie să fie conștient de orice mod în care putem lista fișierele dintr-un director.

Share

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *