Reputation: 191
I was looking on a web of Python the commands mentioned in title and their difference; however, I have not satisfied with a complete basic understanding of these commands.
Suppose my file has only the following content.
This is the first time I am posing a question on this site, I will appreciate if someone clarifies my doubts for learning the Python. I thank the StackOverflow for this platform.
In the commands read()
, readline()
and readlines()
, one difference is of course reading whole file, or a single line, or specified line.
But I didn't understand the use/necessity of bracket ()
in these commands. For example, what is the difference in readline()
and readline(7)
? If the argument 7 exceeds the number of lines in the file, what will be output?
On the web mentioned above, it is explained what the argument in read()
does; but it is not mentioned what the argument in readline()
or readlines()
does?
Upvotes: 9
Views: 48854
Reputation: 141
read(n)
filevar.read()
Reads and returns a string of n characters, or the entire file as a single string if n is not provided.
readline(n)
filevar.readline()
Returns the next line of the file with all text up to and including the newline character. If n is provided as a parameter, then only n characters will be returned if the line is longer than n.
readlines(n)
filevar.readlines()
Returns a list of strings, each representing a single line of the file. If n is not provided then all lines of the file are returned. If n is provided then n characters are read but n is rounded up so that an entire line is returned.
Upvotes: 14
Reputation: 198324
For details, you should consult the library documentation, not the tutorial.
From io
documentation:
readline(size=-1)
Read and return one line from the stream. If
size
is specified, at mostsize
bytes will be read.The line terminator is always
b'\n'
for binary files; for text files, the newline argument toopen()
can be used to select the line terminator(s) recognized.
readlines(hint=-1)
Read and return a list of lines from the stream.
hint
can be specified to control the number of lines read: no more lines will be read if the total size (in bytes/characters) of all lines so far exceedshint
.Note that it’s already possible to iterate on file objects using
for line in file: ...
without callingfile.readlines()
.
So, readline()
reads an entire line. readline(7)
reads at most 7 bytes of a line. readlines()
reads all the lines as a list. readlines(7)
returns at least 1 complete line and more lines as well( until it exceeds 7 bytes)
Upvotes: 4