Programmare in Python : due semplici esempi

Cerchiamo una stringa in un file sequenziale.

 

Ho ricevuto molte richieste di esempi di programmazione semplici. Ho deciso di scrivere un piccolissimo programma che permette di controllare, all’interno di un file sequenziale, la presenza di una determinata stringa. Qualora la stringa esista, viene posto in output il record che la contiene, e in ultimo , viene riportato il numero dei record che ne avevano l’occorrenza.

open python
python open

Comando open()

oggetto_file = open(nome_file [, access_mode][, buffering]))

nome_file – L’argomento nome_file è un valore di stringa che contiene il nome del file a cui si vuole accedere.

access_mode – La modalità access_mode determina il modo in cui il file deve essere aperto, cioè, lettura, scrittura, aggiunta, ecc. Un elenco completo dei possibili valori è riportato di seguito. Questo è un parametro opzionale e la modalità predefinita di accesso ai file è la lettura (r).

buffering – Se il valore di buffering è impostato su 0, non avviene alcun buffering. Se il valore di buffering è 1, il buffering di linea viene eseguito durante l’accesso a un file. Se si specifica il valore di buffering come numero intero superiore a 1, l’azione di buffering viene eseguita con la dimensione del buffer indicata. Se negativo, la dimensione del buffer è il comportamento predefinito del sistema (comportamento predefinito).

access_mode

  •   <Apre un file per la sola lettura. Il puntatore del file viene posizionato all’inizio del file. Questa è la modalità predefinita.
  • rb   <Apre un file per la sola lettura in formato binario. Il puntatore del file viene posizionato all’inizio del file. Questa è la modalità predefinita.
  • r+  <Apre un file sia per la lettura che per la scrittura. Il puntatore del file posto all’inizio del file.
  • rb+ <Apre un file sia per la lettura che per la scrittura in formato binario. Il puntatore del file posto all’inizio del file.
  • <Apre un file solo per la scrittura. Sovrascrive il file se il file esiste. Se il file non esiste, crea un nuovo file per la scrittura.
  • wb <Apre un file per la scrittura solo in formato binario. Sovrascrive il file se il file esiste. Se il file non esiste, crea un nuovo file per la scrittura.
  • w+ <Apre un file sia per la scrittura che per la lettura. Sovrascrive il file esistente se il file esiste. Se il file non esiste, crea un nuovo file per la lettura e la scrittura.
  • wb+ <Apre un file sia per la scrittura che per la lettura in formato binario. Sovrascrive il file esistente se il file esiste. Se il file non esiste, crea un nuovo file per la lettura e la scrittura.
  • a <Apre un file per l’aggiunta. Il puntatore del file si trova alla fine del file se il file esiste. Cioè, il file è in modalità appendice. Se il file non esiste, crea un nuovo file per la scrittura.
  • ab <Apre un file per l’aggiunta in formato binario. Il puntatore del file si trova alla fine del file se il file esiste. Cioè, il file è in modalità append. Se il file non esiste, crea un nuovo file per la scrittura.
  • a+ <Apre un file sia per l’aggiunta che per la lettura. Il puntatore del file si trova alla fine del file se il file esiste. Il file si apre in modalità append. Se il file non esiste, crea un nuovo file per la lettura e la scrittura.
  • ab+ <Apre un file per l’aggiunta e la lettura in formato binario. Il puntatore del file si trova alla fine del file se il file esiste. Il file si apre in modalità append. Se il file non esiste, crea un nuovo file per la lettura e la scrittura.



scarica file.py

# ———————————————————————-
# Come leggere un file di log e ricercare una stringa – Ver 1.0
# https://www.aiutocomputerhelp.it
# ———————————————————————-

# Associamo alla variabile il file dove ricercare
file_dove_ricercare = (“/var/log/auth.log”)

#associamo alla variabile la stringa da ricercare
Ricerco = “pam_unix”

#creiamo l’oggetto Leggo aprendo il file
Leggo = open(“/var/log/auth.log”, “r”)

#leggiamo tutti i record del file sequanziale
for line in Leggo:
# line.find ritorna -1 se non trova nulla  e nr di posizione della stringa se la ritrova
if ( (line.find(Ricerco)) > 0 ):
print (line) #effettuo il print del record

Leggo.close() #chiudo Object

#——————————————————————

scarica file.py

 

e adesso una variante  …. utilizziamo l’input da tastiera

 

scarica file_1.1.py

# ————————————————————————
# Come leggere un file di log e ricercare una stringa – Ver 1.1
# https://www.aiutocomputerhelp.it
# ————————————————————————

R_file = input (“Inserisci il file da analizzare :” );
Find1 = input (“Inserisci la stringa da ricercare :” );
Volte = 0 #contatore occorrenze

g = open(R_file, “r”); # creiamo il file objec

for line in g:

if ( (line.find(Find1)) > 1 ):
print (line)
Volte = Volte +1 #Contatore +1
g.close()

print (“———————————————-“)
print (“Numero Occorrenze :”, Volte)
print (“———————————————-“)

scarica file_1.1.py

Usiamo il programma (versione 1.1) – Possiamo lanciarlo con IDLE o su linea di comando

01 - python leggiamo file sequenziale
01 – python leggiamo file sequenziale – Dopo aver caricato il file lanciamolo con F5

 

02 - python leggiamo file sequenziale
02 – python leggiamo file sequenziale – Inseriamo i valori che desideriamo

 

 

01 - python leggiamo file sequenziale
01 – python leggiamo file sequenziale – vediamo il risultato

 

Linea di comando  : shell e poi python3 file_1-1-py

 python leggiamo file sequenziale
python leggiamo file sequenziale