Come eseguire Grep in Python

Come eseguire Grep in Python

Hai mai pensato di cercare una stringa nei file di una cartella? Probabilmente hai familiarità con il comando Grep se sei un utente Linux. È possibile creare il tuo comando utilizzando la programmazione Python per cercare uno schema stringa nei file specificati. L'applicazione consente inoltre di cercare modelli che utilizzano espressioni regolari.

Usando Python in Windows, puoi semplicemente cercare stringhe di testo dai file in una cartella specifica. Il comando GREP è disponibile su Linux; Tuttavia, non è presente su Windows. L'unica altra opzione è scrivere un comando per trovare la stringa.

Questo articolo ti insegnerà come utilizzare lo strumento GREP e quindi utilizzare espressioni regolari per eseguire ricerche più avanzate. Ci sono anche alcuni esempi di Python Grep per aiutarti a imparare a usarlo.

Cos'è grep?

Uno dei comandi più vantaggiosi è il comando grep. Grep è uno strumento utile per la riga di comando che ci consente di utilizzare espressioni regolari per cercare file di testo in semplice per le righe specificate. In Python, le espressioni regolari (RE) sono comunemente usate per determinare se una stringa corrisponde a uno schema specifico. Le espressioni regolari sono pienamente supportate dal pacchetto RE di Python. Il modulo Re lancia il RE.Eccezione di errore Quando si verifica un errore durante l'utilizzo di espressioni regolari.

Il termine Grep significa che puoi usare Grep per vedere se i dati che ottengono corrispondono a un modello specificato. Questo programma apparentemente innocuo è molto potente; La sua capacità di ordinare l'input secondo regole sofisticate è un componente comune in molte catene di comando.

Le utility GREP sono un gruppo di programmi di ricerca di file che comprendono GREP, EGREP e FGREP. A causa della sua rapidità e capacità di guardare semplicemente stringhe e parole, FGREP è sufficiente per la maggior parte dei casi d'uso. D'altra parte, la digitazione di Grep è semplice e può essere utilizzata da chiunque.

Esempio 1:

Quando usi Grep in Python per cercare un file, cercherà un'espressione regolare a livello globale e subirà la riga se ne trova una. Per Python Grep, segui le linee guida di seguito.

Il primo passo è utilizzare la funzione Open () in Python. Come dice il nome, la funzione Open () viene utilizzata allo scopo di aprire un file. Quindi, usando il file, scrivi il contenuto all'interno del file e per questo, write () è una funzione che viene utilizzata per scrivere testo. Dopodiché, puoi salvare il file con il nome che ti piace.

Ora, crea uno schema. Diciamo che desideriamo cercare un file per il termine "caffè."Dobbiamo esaminare quella parola chiave, quindi useremo la funzione Open () per aprire il file.

Per confrontare una stringa insieme a un'espressione regolare, è possibile utilizzare il RE.Search () funzione. Usando un modello di espressione regolare e una stringa, il re.Il metodo Search () cerca un modello di espressione regolare all'interno di una stringa. Il metodo Search () restituirà un oggetto Match se la ricerca ha esito positivo.

Importa il modulo RE nella parte superiore del codice per gestire espressioni regolari in R. Stamperemo l'intera riga se rileva una corrispondenza usando un'espressione regolare. Ad esempio, stiamo cercando la parola "caffè" e, se viene trovato, la stamperà. L'intero codice è disponibile di seguito.

importazione re
file_one = open ("new_file.txt "," w ")
file_one.Scrivi ("Coffee \ nplease")
file_one.vicino()
Patrn = "Coffee"
file_one = open ("new_file.txt "," r ")
per word in file_one:
se re.Search (Patrn, Word):
Stampa (parola)

Qui puoi vedere che la parola "caffè" è stampata nell'output.

Esempio 2:

Chiama Apri (posizione del file, modalità) utilizzando la posizione e la modalità del file come "R" per aprire un file per la lettura nel codice seguente. Per prima cosa abbiamo importato il modulo RE e quindi aperto il file fornendo il nome e la modalità del file.

Stiamo usando un ciclo per loop per loop attraverso le righe nel file. Utilizzare l'istruzione IF If RE.Cerca (pattern, riga) per cercare un'espressione o una stringa regolare, con il modello che è l'espressione o la stringa regolari da cercare e la riga è la riga corrente nel file.

importazione re
file_one = open ("demo.txt "," w ")
file_one.Scrivi ("Prima riga di testo \ nsecond riga di testo \ nthird riga di testo")
file_one.vicino()
Patrn = "Second"
file_one = open ("demo.txt "," r ")
per riga in file_one:
se re.Search (Patrn, Line):
Stampa (linea)

Qui, la linea completa viene stampata in cui si trova il motivo.

Esempio 3:

Le espressioni regolari possono essere gestite con il pacchetto RE di Python. Cercheremo di eseguire Grep in Python ed esamineremo un file per un modello definito nel codice indicato di seguito. Usiamo la modalità di lettura per aprire il file e loop appropriati tramite riga per riga. Quindi usiamo il re.Metodo Search () per trovare il modello richiesto in ogni riga. La linea viene stampata se viene rilevato il motivo.

importazione re
con aperto ("Demo.txt "," r ") come file_one:
Patrn = "Second"
per riga in file_one:
se re.Search (Patrn, Line):
Stampa (linea)

Ecco l'output, che mostra chiaramente che il modello si trova nel file.

Esempio 4:

C'è un altro modo brillante per farlo con Python tramite la riga di comando. Questo metodo impiega la riga di comando per specificare l'espressione regolare e il file da cercare e non dimenticare il terminale per eseguire il file. Questo ci consente di riprodurre accuratamente Grep in Python. Questo viene fatto con il codice sottostante.

importazione re
Import sys
con Open (sys.argv [2], "r") come file_one:
per riga in file_one:
se re.Cerca (sys.argv [1], linea):
Stampa (linea)

La funzione argv () del modulo sys genera una sequenza contenente tutti gli argomenti forniti alla riga di comando. Possiamo salvarlo con il nome di grep.Py ed esegui uno script di Python specifico dalla shell con i successivi argomenti.

Conclusione:

Per cercare un file che impiega Grep in Python, importare il pacchetto "RE", caricare il file e utilizzare un ciclo per iterare su ciascuna riga. Ad ogni iterazione, usa il re.Metodo Search () e l'espressione di Regex come argomento principale e la linea di dati come secondo. Abbiamo superato l'argomento in dettaglio con diversi esempi in questo articolo.