Sto provando a fare qualcosa del genere:
Lines = file.readlines() # do something Lines = file.readlines()
ma la seconda volta Lines
è vuota. È normale?
Sì, perché .readlines()
avanza il puntatore del file fino alla fine del file.
Perché non archiviare semplicemente una copia delle righe in una variabile?
file_lines = file.readlines() Lines = list(file_lines) # do something that modifies Lines Lines = list(file_lines)
Sarebbe molto più efficiente di colpire il disco due volte. (Si noti che la chiamata a list()
è necessaria per creare una copia dell’elenco in modo che le modifiche a Lines
non influiscano su file_lines
.)
È necessario ripristinare il puntatore del file utilizzando
file.seek(0)
prima di usare
file.readlines()
ancora.
Per non dover reimpostare ogni volta utilizzando il metodo di ricerca ancora e ancora, utilizzare il metodo readlines, ma è necessario memorizzarlo in variabili come nell’esempio seguente:
%%writefile test.txt this is a test file! #open it op_file = open('test.txt') #read the file re_file = op_file.readlines() re_file #output ['this is a test file!'] # the output still the same re_file ['this is a test file!']