Hvordan løpe grep i Python

Hvordan løpe grep i Python

Har du noen gang vurdert å lete etter en streng i en mappes filer? Du er sannsynligvis kjent med GREP -kommandoen hvis du er en Linux -bruker. Du kan opprette kommandoen din ved hjelp av Python -programmering for å søke etter et strengmønster i de spesifiserte filene. Applikasjonen lar deg også søke etter mønstre som bruker vanlige uttrykk.

Ved hjelp av Python i Windows kan du ganske enkelt søke tekststrenger fra filer i en bestemt mappe. GREP -kommandoen er tilgjengelig på Linux; Det er imidlertid ikke til stede på Windows. Det eneste andre alternativet er å skrive en kommando for å finne strengen.

Denne artikkelen vil lære deg hvordan du bruker GREP -verktøyet og deretter bruker vanlige uttrykk for å utføre mer avanserte søk. Det er også noen Python grep eksempler som hjelper deg å lære å bruke det.

Hva er grep?

En av de mest fordelaktige kommandoene er GREP -kommandoen. GREP er et nyttig kommandolinjeverktøy som lar oss bruke vanlige uttrykk for å søke på vanlig tekstfiler for spesifiserte linjer. I Python brukes vanlige uttrykk (RE) ofte for å avgjøre om en streng samsvarer med et spesifikt mønster. Regelmessige uttrykk støttes fullt ut av Pythons RE -pakke. RE -modulen kaster RE.Feil unntak når en feil oppstår mens du bruker vanlige uttrykk.

GREP -uttrykket betyr at du kan bruke grep for å se om dataene den får samsvarer med et mønster du spesifiserer. Dette tilsynelatende uskyldige programmet er svært kraftig; Evnen til å sortere innspill i henhold til sofistikerte regler er en vanlig komponent i mange kommandokjeder.

GREP-verktøyene er en gruppe filsøkingsprogrammer som består av GREP, EGREP og FGREP. På grunn av sin raskhet og evne til bare å se på strenger og ord, er FGREP tilstrekkelig for de fleste brukstilfeller. På den annen side er det enkelt å skrive grep og kan brukes av hvem som helst.

Eksempel 1:

Når du bruker grep i python for å søke i en fil, vil den se etter et vanlig uttrykk globalt og sende ut linjen hvis den finner en. For Python grep, følg retningslinjene nedenfor.

Det første trinnet er å bruke Open () -funksjonen i Python. Som navnet sier, brukes Open () -funksjonen for å åpne en fil. Deretter, ved å bruke filen, skriv innholdet i filen, og for dette er skriv () en funksjon som brukes til å skrive tekst. Etter det kan du lagre filen med navnet du liker.

Lag nå et mønster. La oss si at vi ønsker å søke på en fil etter begrepet “Kaffe.”Vi må undersøke det nøkkelordet, så vi bruker Open () -funksjonen for å åpne filen.

For å sammenligne en streng ved siden av et vanlig uttrykk, kan du bruke RE.Søk () Funksjon. Ved hjelp av et vanlig uttrykksmønster og en streng, re.Søk () -metoden ser etter et vanlig uttrykksmønster i en streng. Søk () -metoden vil returnere et matchobjekt hvis søket er vellykket.

Importer RE -modulen øverst i koden for å håndtere vanlige uttrykk i r. Vi skriver ut hele linjen hvis den oppdager en kamp ved hjelp av et vanlig uttrykk. For eksempel leter vi etter ordet "kaffe", og hvis det blir funnet, vil det trykke det. Hele koden finner du nedenfor.

Import re
file_one = åpen ("new_file.txt "," w ")
file_one.Skriv ("Kaffe \ nlease")
file_one.Lukk()
patrn = "kaffe"
file_one = åpen ("new_file.txt "," r ")
for ord i file_one:
Hvis re.Søk (patn, ord):
trykk (ord)

Her kan du se at ordet “kaffe” er skrevet ut i utgangen.

Eksempel 2:

Ring åpen (filplassering, modus) ved hjelp av filplassen og modus som "R" for å åpne en fil for lesing i følgende kode. Vi importerte først RE -modulen og åpnet deretter filen ved å gi filnavnet og modus.

Vi bruker en for-loop, sløyfe gjennom linjene i filen. Bruk IF -uttalelsen IF RE.Søk (mønster, linje) for å søke etter et vanlig uttrykk eller streng, med mønsteret som det vanlige uttrykket eller strengen å se etter og linjen er den gjeldende linjen i filen.

Import re
file_one = åpen ("Demo.txt "," w ")
file_one.Skriv ("Første tekstlinje \ Nsecond Line of Text \ nthird Line of Text")
file_one.Lukk()
Patrn = "Second"
file_one = åpen ("Demo.txt "," r ")
for linje i file_one:
Hvis re.Søk (patn, linje):
trykk (linje)

Her skrives den komplette linjen ut der mønsteret blir funnet.

Eksempel 3:

Regelmessige uttrykk kan håndteres med Pythons RE -pakke. Vi prøver å utføre grep i Python og undersøke en fil for et bestemt mønster i koden gitt nedenfor. Vi bruker lesemodus for å åpne riktig fil og sløyfe gjennom linjen for linje. Så bruker vi RE.Søk () Metode for å finne det nødvendige mønsteret i hver linje. Linjen skrives ut hvis mønsteret blir oppdaget.

Import re
med åpen ("Demo.txt "," r ") som file_one:
Patrn = "Second"
for linje i file_one:
Hvis re.Søk (patn, linje):
trykk (linje)

Her er utgangen, som tydelig viser at mønsteret finnes i filen.

Eksempel 4:

Det er en annen strålende måte å gjøre dette med Python via kommandolinjen. Denne metoden bruker kommandolinjen for å spesifisere det vanlige uttrykket og filen som skal søkes, og ikke glem terminalen for å utføre filen. Dette tillater oss å reprodusere Grep nøyaktig i Python. Dette gjøres med koden nedenfor.

Import re
Importer Sys
med åpen (sys.argv [2], "r") som file_one:
for linje i file_one:
Hvis re.Søk (Sys.Argv [1], linje):
trykk (linje)

SYS -modulens ArgV () -funksjon genererer en sekvens som inneholder alle argumentene som leveres til kommandolinjen. Vi kan lagre det ved navn grep.py og kjør et spesifikt Python -skript fra skallet med de påfølgende argumentene.

Konklusjon:

For å søke i en fil som bruker GREP i Python, importer "RE" -pakken, last opp filen og bruk en for loop for å iterere over hver linje. Bruk RE på hver iterasjon.Søk () Metode og regex -uttrykket som det primære argumentet og datalinjen som det andre. Vi har gått over emnet i detalj med flere eksempler i denne artikkelen.