Python Glob Function

Python este unul dintre cele mai utilizate limbaje de programare de uz general din ultima vreme. Acesta oferă multe module, funcții și cuvinte cheie încorporate pentru a efectua sarcini legate de fișiere. Un glob este un termen care se referă la tehnicile utilizate pentru a potrivi anumite tipare în conformitate cu regulile legate de shell-ul UNIX. Sistemele de operare bazate pe Linux și UNIX oferă funcția glob() pentru a găsi fișiere și directoare în conformitate cu un anumit model. Python oferă, de asemenea, un modul glob încorporat pentru a accesa sau a prelua fișiere și nume de căi care se potrivesc cu un model specificat. Vom utiliza funcția Python glob() din modulul glob pentru sarcinile descrise în acest articol. Acest articol explică modul de utilizare a funcției glob() pentru a găsi nume de căi de acces și nume de fișiere în conformitate cu un model dat.

Exemplu 1: Potrivirea numelui de fișier sau a numelui de cale de acces cu calea de acces absolută

Să analizăm câteva exemple pentru a înțelege funcționarea și lucrul funcției glob(). Vom începe cu un exemplu simplu de potrivire a numelui de fișier sau a numelui de traseu cu calea absolută. Dacă numele de fișier sau numele de cale se potrivește cu calea absolută, atunci funcția glob() returnează potrivirile sub forma unei liste; în caz contrar, funcția glob() returnează o listă goală.

#importul modulului glob
import glob
#utilizarea funcției glob pentru a potrivi numele de drum cu calea absolută
#potrivirea căii absolute a directorului downloads
print(glob.glob(“/home/linuxhint/Downloads”))
#potrivirea căii absolute a directorului documents
print(glob.glob(“/home/linuxhint/Documents”))
#corespunderea căii absolute a Desktop-ului
print(glob.glob(“/home/linuxhint/Desktop”))
#corespunderea căii absolute a fișierelor
print(glob.glob(“/home/linuxhint/Desktop/script.sh”))
print(glob.glob(“/home/linuxhint/Downloads/format.py”))
print(glob.glob(“/home/linuxhint/Documents/calculator.py”))
#specificarea căii unui fișier care nu există
#funcția glob va returna lista goală
print(glob.glob(“/home/linuxhint/Documents/myfile.py”))

Ieșire

Ieșirea arată corespondențele.

Exemplu 2: Utilizarea caracterelor joker pentru regăsirea căilor de acces

Este posibil să se utilizeze caractere joker cu funcția glob() pentru regăsirea căilor de acces. Cele mai frecvent utilizate wildcards sunt asteriscul (*), semnul întrebării (?), intervalul de numere , și intervalul de alfabete . Mai întâi, vom discuta despre utilizarea asteriscului în funcția glob().

Utilizarea unui asterisc (*) wildcard pentru regăsirea căii de acces

Operatorul wildcard asterisc este utilizat pentru a potrivi zero sau mai multe caractere ale căii absolute. Dacă nu se specifică niciun caracter (caractere) cu asterisc, atunci funcția va lista calea absolută a tuturor fișierelor, directoarelor și subdirectoarelor din calea dată. Puteți, de asemenea, să scrieți câteva caractere cu asterisc, iar funcția va potrivi calea absolută pe baza caracterelor date. De exemplu, dacă aveți nevoie să găsiți calea absolută a fișierelor .txt, atunci wildcardul * poate fi folosit ca *.txt.

Vom implementa acest lucru în scriptul nostru Python.

#importând modulul glob
import glob
#găsind calea absolută a fișierelor și directoarelor
print(glob.glob(“/home/linuxhint/Downloads/*”))
print(“—————————————-“)
#găsirea căii absolute a fișierelor .txt din directorul Desktop
print(glob.glob(“/home/linuxhint/Desktop/*.txt”))
print(“—————————————-“)
#găsirea căii absolute a fișierelor .sh din directorul Desktop
print(glob.glob(“/home/linuxhint/Desktop/*.sh”))
print(“—————————————-“)
#găsirea căii absolute a fișierelor .py din directorul Documents
print(glob.glob(“/home/linuxhint/Documents/*.py”))
print(“—————————————-“)

Imprimare

Imprimarea arată calea absolută a fișierelor și directoarelor în conformitate cu regulile definite în funcția glob().

Utilizarea unui operator wildcard cu semnul întrebării (?)

Operatorul wildcard cu semnul întrebării (?) este utilizat pentru a potrivi un singur caracter. Acest lucru poate fi util în situațiile în care nu cunoașteți un singur caracter în numele dat.

Vom implementa acest lucru în scriptul nostru Python.

#importând modulul glob
import glob
#găsind fișierul cu operatorul wildcard *
print(glob.glob(“/home/linuxhint/Desktop/file?.txt”)))

Salire

Salirea arată fișierele potrivite.

Utilizarea unui operator wildcard de interval

Operatorul wildcard de interval este utilizat pentru a potrivi fișiere într-un anumit interval de caractere sau numere. Intervalul este definit în interiorul parantezelor pătrate .

Vom găsi calea absolută a fișierelor prin definirea intervalului.

#importul modulului glob
import glob
#găsirea căii absolute a fișierelor dintr-un interval dat
#definirea intervalului în caractere
print(glob.glob(“/home/linuxhint/Desktop/*”))
#imprimarea liniei punctate pentru a diferenția ieșirea
print(“——————————————“)
#definirea intervalului în numere
print(glob.glob(“/home/linuxhint/Desktop/*”))

Output

Căutarea recurentă a fișierelor folosind glob()

Funcția glob primește ca argument doi parametri. Primul parametru definește calea de acces, iar cel de-al doilea parametru definește proprietatea recursivă. Al doilea parametru este opțional, iar proprietatea recursivă este setată implicit la “false”. Cu toate acestea, puteți seta proprietatea recursivă la “true” pentru a găsi calea fișierului în mod recursiv.

Vom seta proprietatea recursivă egală cu “true” în scriptul nostru Python și vom găsi calea absolută a fișierelor în mod recursiv.

#importul modulului glob
import glob
#găsirea fișierelor în mod recursiv
print(glob.glob(“/home/linuxhint/Documents/*”,recursive=True))

Output

Concluzie

Glob este un termen comun care se referă la tehnicile utilizate pentru a potrivi anumite tipare în conformitate cu regulile legate de shell-ul UNIX. Python oferă un modul și o funcție glob încorporată pentru accesarea numelor de căi de acces în conformitate cu reguli date. Acest articol explică modul de utilizare a funcției glob() pentru a găsi nume de căi de acces cu diverse exemple.

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.