Python Glob() functie om Pad, Directory, bestandsnamen met voorbeelden te matchen

glob is een algemene term die wordt gebruikt om technieken te definiëren om gespecificeerde patronen te matchen volgens regels gerelateerd aan Unix shell. Linux en Unix systemen en shells ondersteunen ook glob en bieden ook functie glob() in systeembibliotheken. In deze tutorial zullen we glob() zoeken functie gebruik in Python programmeertaal.

om glob() en gerelateerde functies te kunnen gebruiken, moeten we de glob module importeren. Houd er rekening mee dat glob module glob() en andere gerelateerde functies bevat.

import glob
import Glob Module

Exact String Search

We zal beginnen met een eenvoudig voorbeeld. We zullen kijken hoe je de exacte tekenreeks of bestandsnaam matcht met een absoluut pad. In dit voorbeeld zullen we bestand /home/ismail/poftut.c weergeven . We kunnen hieronder een voorbeeld zien dat de functie een lijst retourneert die overeenkomsten bevat.

glob.glob("/home/ismail/poftut.c")
exacte tekenreeks zoeken

Wildcards

jokertekens zijn belangrijk voor Glob-bewerkingen. Wildcard of sterretje wordt gebruikt om nul of meer tekens overeen te komen. Jokertekens geven aan dat er een nulteken of meerdere tekens kunnen zijn waarbij een teken niet belangrijk is. In deze exmaple zullen we bestanden vergelijken die .txt extensie hebben.

glob.glob("/home/ismail/*.txt")
Wildcards

aangezien we kunnen zien dat er veel .txt bestanden die terugkeren in een Python lijst.

jokertekens met multilevel mappen

We kunnen jokertekens gebruiken om multilevel mappen op te geven. Als we een niveau lager directory ‘ s willen zoeken naar opgegeven glob, gebruiken we /*/ . In dit voorbeeld zoeken we naar .txt bestanden in één niveau omlaag mappen in /home/ismail . Dit wordt ook wel “glob glob” genoemd omdat we de modulenaam glob en de functie glob gebruiken die door de glob-module wordt geleverd.

glob.glob("/home/ismail/*/*.txt")
jokertekens met multilevel-mappen

jokertekens met één teken

er is een vraagteken dat wordt gebruikt om een enkel teken te matchen. Dit kan handig zijn als we geen enkel teken voor een gegeven naam kennen. In dit voorbeeld zullen we bestanden vergelijken met bestanden file?.txt bestand waar deze zullen overeenkomen met

  • bestand.txt
  • bestand1.txt
  • bestand5.txt
glob.glob("/home/ismail/file?.txt")

meerdere tekens

Glob ondersteunt ook alfabetische en numerieke tekens. We kunnen gebruiken om het tekenbereik te beëindigen. We kunnen zetten wat we willen matchen tussen vierkante haken. In dit voorbeeld zullen we bestanden en mappen met namen vergelijken die beginnen met e,m,p .

glob.glob("/home/ismail/*.tx?")
Tekenbereiken

getalbereiken

in sommige gevallen willen we misschien overeenkomen met het getalbereik. We kunnen - dash gebruiken om begin-en eindnummers op te geven. In dit voorbeeld zullen we 0 tot 9 matchen met 0-9. In dit voorbeeld zullen we Bestand-en mapnamen matchen die getallen van 0 tot 9 bevatten.

glob.glob("/home/ismail/**")
Nummerbereiken

Alfabetbereiken

We kunnen ook definieer alfabetbereiken vergelijkbaar met nummerbereiken. we zullen a-z gebruiken voor kleine letters, waarbij A-Z voor hoofdletters. Wat als we lagere en hoofdletters in één statement moeten matchen. We kunnen a-Z gebruiken om zowel lagere als hoofdletters te matchen. In dit voorbeeld, wij zullen overeenkomen met bestanden en mappen namen die begint met de letters tussen a en c

glob.glob("/home/ismail/*")
Alfabet Ranges

Terug Generator met iglob() Mehtod

over het Algemeen glob-methode is gebruikt om de lijst met bestanden voor de opgegeven patronen. Maar in sommige gevallen kan het opnemen en opslaan ervan een vervelend werk zijn. Dus iglob() functie kan worden gebruikt om een iterator aan te maken die kan worden gebruikt om de bestandsnamen te herhalen met de next() functie.

import glob
gen = glob.iglob("*.txt")
for item in gen:
print(item)
Return Generator with iglob() Mehtod

specifiek overslaan characters with Escape() method

escape()functie kan worden gebruikt om bestanden over te slaan of niet een lijst te maken met bepaalde tekens. Als we bijvoorbeeld de bestanden willen overslaan die - of _ of # kunnen we de escape() functie gebruiken door deze karakters op te geven.

chars_skip = "-_#"
for char_skip in chars_skip:
esc_set = "*" + glob.escape(char_skip)+ "*" + ".txt"
for txt in (glob.glob(esc_set)):
print(txt)

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.