Soluble
Soluble

Reputation: 191

Difference in read(), readline() and readlines() in Python

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

Answers (2)

Ryan Breen
Ryan Breen

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

Amadan
Amadan

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 most size bytes will be read.

The line terminator is always b'\n' for binary files; for text files, the newline argument to open() 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 exceeds hint.

Note that it’s already possible to iterate on file objects using for line in file: ... without calling file.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

Related Questions