Python File Seek

Python File Seek
Python ha diverse tecniche per gestire i file. Esistono metodi per manipolare il puntatore del file in modo efficace e operazioni di base come la lettura e la scrittura sui file. Imparerai come utilizzare il metodo Seek () per trasferire il puntatore del file durante la lettura o la scrittura di un file in questo articolo.

La funzione Seek () imposta la posizione di un puntatore del file, mentre la funzione Tell () restituisce la posizione corrente del puntatore del file. La funzione Python's Seek () modifica la posizione corrente del file in offset. Da cui è un parametro opzionale che è predefinito a 0 per il posizionamento immediato dei file; Altri valori sono 1 per la ricerca rispetto alla posizione attuale e 2 per cercare rispetto alla fine del file. Non c'è valore restituito. Qualsiasi azione di ricerca () verrà cancellata alla prossima scrittura se il file viene aperto per aggiungere "A" o "A+."Questo metodo non è utile se il file è appena aperto per la scrittura ed è in modalità Append con" A ", ma è utile per i file aperti in modalità Append con lettura abilitata. Solo gli offset restituiti da Tell () sono legali quando il file viene aperto in modalità testo con 't.'L'uso di vari offset comporta un comportamento imprevedibile. È fondamentale tenere presente che non tutti gli oggetti di file possono essere cercati.

Lo scopo di questo articolo è di insegnarti come utilizzare il metodo Seek () per avanzare o arretrare il cursore del file dalla sua posizione attuale. Impara come trasferire il puntatore del file all'inizio o alla fine del file. Scopri come determinare la posizione corrente di "FileHandle" spostando il puntatore del file all'indietro dalla fine del file. Quindi, iniziamo il tutorial.

Esempio 1:

Considera il seguente scenario, in cui stiamo leggendo il contenuto di un file di testo con un offset di 5. Ciò indica che inizieremo a leggere il file al 5 ° carattere.

Qui, abbiamo aperto il file dandoci il percorso esatto. Successivamente, leggiamo il contenuto del 5 ° carattere usando il metodo di ricerca.

con aperto (r'd:/utenti/demo/demo.txt ', "r") come fp:
fp.Cerca (5)
Stampa (FP.Leggere())

I primi cinque caratteri mancano nell'output, come puoi vedere.

Esempio 2:

Cercheremo l'inizio del file in questo caso. Impostando il parametro da cui 0, possiamo utilizzare il metodo Seek () per spostare il riferimento del file all'inizio del file. Lo 0 indica l'inizio del file, che è il primo byte. Diamo un'occhiata a come portare il cursore del file all'inizio del file. Qui stiamo scrivendo a un file di testo nell'esempio del procedimento. Volevamo spostare il cursore all'inizio del file dopo aver aggiunto il contenuto per leggere il file completo.

con aperto (r'd:/utenti/demo/demo.txt ', "w+") come fp:
fp.Scrivi ('Esempio di riga di contenuto 1 \ n')
fp.Scrivi ('Esempio di riga di contenuto 2')
fp.Cerca (0)
Stampa (FP.Leggere())

Il testo è scritto.

Di seguito è riportato il testo aggiornato dopo la corretta esecuzione del codice.

Esempio 3:

In questo esempio, cercheremo dalla fine del file. In questo caso, inizieremo a cercare alla fine del file. Abbiamo impostato da dove 2 e offset su 0 per spostare il puntatore del file fino alla fine del file. Le tre operazioni elencate di seguito verranno eseguite nell'esempio seguente. Aggiungeremo contenuti aggiuntivi e sposteremo il puntatore del file alla fine del file. Il riferimento del file verrà quindi spostato all'inizio del file e le nuove informazioni verranno aggiunte lì. Restituiremo il puntatore del file all'inizio e andremo avanti con l'operazione di scrittura. Diamo un'occhiata a come spostare il cursore del file fino alla fine del file. Useremo un file esistente per questo processo e apriremo un nuovo file in modalità di lettura/scrittura.

con aperto (r'd:/utenti/demo/demo.txt ', "w+") come fp:
fp.Scrivi ('Esempio di riga di contenuto 1 \ n')
fp.Scrivi ('Esempio di riga di contenuto 2')
fp.Cerca (0)
Stampa (FP.Leggere())

Il contenuto viene aggiunto alla fine della riga.

La demo.anche il file txt viene aggiornato.

Esempio 4:

Infine, esamineremo la situazione attuale. Possiamo trasferire il puntatore del file alcune posizioni prima della posizione corrente impostando da dove 1 e compensare il numero della posizione che vogliamo modificare. Se il puntatore del file corrente è nella 20a posizione e si desidera saltare al 75 ° carattere, impostare l'offset su 50 e da dove 1. Useremo un file esistente e apriremo un nuovo file in modalità di lettura/scrittura per questo processo. Considera il codice seguente, che legge tre byte e li converte in byte. L'oggetto è stato quindi avanzato 10 punti dalla sua posizione esistente. Abbiamo letto tre byte nell'ultimo.

con aperto (r'd:/utenti/demo/demo.txt ', "rb") come fp:
fp.Cerca (2)
Stampa (FP.Leggi (3).decode ("UTF-8"))
fp.Cerca (5, 1)
Stampa (FP.Leggi (3).decode ("UTF-8"))

La schermata risultante del codice sopra è la seguente.

Conclusione:

In questo articolo, abbiamo imparato a sfogliare diverse parti o sezioni di un file utilizzando il filehandle. Ti abbiamo mostrato come modificare la posizione di fileHandle con il metodo Seek () per aggiungere nuovi contenuti o leggere alcune sezioni di file.