I want to read a huge file in my code. Is read() or readline() faster for this. How about the loop:
for line in fileHandle
The read() will read the whole file at once and then print out the first characters that take up as many bytes as you specify in the parenthesis versus the readline() that will read and print out only the first characters that take up as many bytes as you specify in the parenthesis.
The only difference between the Read() and ReadLine() is that Console. Read is used to read only single character from the standard output device, while Console. ReadLine is used to read a line or string from the standard output device. Program 1: Example of Console.
Python File read() Method The read() method returns the specified number of bytes from the file. Default is -1 which means the whole file.
In the commands read() , readline() and readlines() , one difference is of course reading whole file, or a single line, or specified line.
For a text file just iterating over it with a for
loop is almost always the way to go. Never mind about speed, it is the cleanest.
In some versions of python readline()
really does just read a single line while the for
loop reads large chunks and splits them up into lines so it may be faster. I think that more recent versions of Python use buffering also for readline()
so the performance difference will be minuscule (for
is probably still microscopically faster because it avoids a method call). However choosing one over the other for performance reasons is probably premature optimisation.
Edit to add: I just checked back through some Python release notes. Python 2.5 said:
It’s now illegal to mix iterating over a file with for line in file and calling the file object’s read()/readline()/readlines() methods.
Python 2.6 introduced TextIOBase which supports both iterating and readline()
simultaneously.
Python 2.7 fixed interleaving read()
and readline()
.
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