I'm trying to do something like this:
Lines = file.readlines()
# do something
Lines = file.readlines()
but the second time Lines
is empty. Is that normal?
You need to reset the file pointer using
file.seek(0)
before using
file.readlines()
again.
Yes, because .readlines()
advances the file pointer to the end of the file.
Why not just store a copy of the lines in a variable?
file_lines = file.readlines()
Lines = list(file_lines)
# do something that modifies Lines
Lines = list(file_lines)
It'd be far more efficient than hitting the disk twice. (Note that the list()
call is necessary to create a copy of the list so that modifications to Lines
won't affect file_lines
.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With