3 ms·
Forgive me, but doesn't file.readline() provide the same functionality for reading a single line at a time from a file?
by cpjk 13y ago
Forgive me, but doesn't file.readline() provide the same functionality for reading a single line at a time from a file?
- gcr 13y agoYes, this is essentially looping over successive calls to file.readline()
- tjgq 13y agoWith at least one small (and usually irrelevant) difference: "for line in file" has its own internal buffering which cannot be turned off with python -u. I learned this the hard way when debugging a Python script that read from tail -f output...
- gcr 13y agoI thought a function that reads a line from a file would read the entire line and block until doing so. How would turning off line buffering change that? Do you expect 'for line in file' to yield as many bytes as is available if a full line can't be read yet?
- chaosphere2112 13y agoYeah, but aren't we actually supposed to do this? for line in file:
- scott_s 13y agoYes, and that is the idiomatic way to read files in Python. I guess me and the author are looking at different Python programs, because slurping the whole file is not "by far the most common way" I have seen files read in the wild.
- rprospero 13y agoMost of my code slurps the entire file at a time. I can't actually think of any code we have that streams the code. Then again, most of my files are three dimensional matrices. There's nothing I can really do on a line by line basis.