For line in file python

Prerequisites: 

  • Access modes 
  • Open a file 
  • Close a file 

Python provides inbuilt functions for creating, writing, and reading files. There are two types of files that can be handled in python, normal text files and binary files (written in binary language, 0s, and 1s). In this article, we are going to study reading line by line from a file.

Method 1: Read a File Line by Line using readlines()

readlines() is used to read all the lines at a single go and then return them as each line a string element in a list. This function can be used for small files, as it reads the whole file content to the memory, then split it into separate lines. We can iterate over the list and strip the newline ‘\n’ character using strip() function.

Example: 

Python3

L = ["Geeks\n", "for\n", "Geeks\n"]

file1 = open('myfile.txt', 'w')

file1.writelines(L)

file1.close()

file1 = open('myfile.txt', 'r')

Lines = file1.readlines()

count = 0

for line in Lines:

    count += 1

    print("Line{}: {}".format(count, line.strip()))

Output: 
 

Line1: Geeks
Line2: for
Line3: Geeks

Method 2: Read a File Line by Line using readline()

readline() function reads a line of the file and return it in the form of the string. It takes a parameter n, which specifies the maximum number of bytes that will be read. However, does not reads more than one line, even if n exceeds the length of the line. It will be efficient when reading a large file because instead of fetching all the data in one go, it fetches line by line. readline() returns the next line of the file which contains a newline character in the end. Also, if the end of the file is reached, it will return an empty string.

For line in file python

Example:

Python3

L = ["Geeks\n", "for\n", "Geeks\n"]

file1 = open('myfile.txt', 'w')

file1.writelines((L))

file1.close()

file1 = open('myfile.txt', 'r')

count = 0

while True:

    count += 1

    line = file1.readline()

    if not line:

        break

    print("Line{}: {}".format(count, line.strip()))

file1.close()

Output: 

Line1 Geeks
Line2 for
Line3 Geeks

Method 3: Read a File Line by Line using for loop

An iterable object is returned by open() function while opening a file. This final way of reading a file line-by-line includes iterating over a file object in for a loop. In doing this we are taking advantage of a built-in Python function that allows us to iterate over the file object implicitly using a for loop in a combination with using the iterable object. This approach takes fewer lines of code, which is always the best practice worthy of following.

Example:

Python3

L = ["Geeks\n", "for\n", "Geeks\n"]

file1 = open('myfile.txt', 'w')

file1.writelines(L)

file1.close()

file1 = open('myfile.txt', 'r')

count = 0

print("Using for loop")

for line in file1:

    count += 1

    print("Line{}: {}".format(count, line.strip()))

file1.close()

Output:

Using for loop
Line1: Geeks
Line2: for
Line3: Geeks

Method 4: Read a File Line by Line using for loop and list comprehension

A list comprehension consists of brackets containing the expression, which is executed for each element along with the for loop to iterate over each element. Here, we will read the text file and print the raw data including the new line character in another output we removed all the new line characters from the list.

Example

Python3

with open('myfile.txt') as f:

    lines = [line for line in f]

print(lines)

with open('myfile.txt') as f:

    lines = [line.rstrip() for line in f]

print(lines)

Output:

['Geeks\n', 'For\n', 'Geeks']
['Geeks', 'For', 'Geeks']

With statement

In the above approaches, every time the file is opened it is needed to be closed explicitly. If one forgets to close the file, it may introduce several bugs in the code, i.e. many changes in files do not go into effect until the file is properly closed. To prevent this with statement can be used. The With statement in Python is used in exception handling to make the code cleaner and much more readable. It simplifies the management of common resources like file streams. Observe the following code example on how the use of with statement makes the code cleaner. There is no need to call file.close() when using with the statement. The with the statement itself ensures proper acquisition and release of resources.

Example:

Python3

L = ["Geeks\n", "for\n", "Geeks\n"]

with open("myfile.txt", "w") as fp:

    fp.writelines(L)

count = 0

print("Using readlines()")

with open("myfile.txt") as fp:

    Lines = fp.readlines()

    for line in Lines:

        count += 1

        print("Line{}: {}".format(count, line.strip()))

count = 0

print("\nUsing readline()")

with open("myfile.txt") as fp:

    while True:

        count += 1

        line = fp.readline()

        if not line:

            break

        print("Line{}: {}".format(count, line.strip()))

count = 0

print("\nUsing for loop")

with open("myfile.txt") as fp:

    for line in fp:

        count += 1

        print("Line{}: {}".format(count, line.strip()))

Output: 

Using readlines()
Line1: Geeks
Line2: for
Line3: Geeks

Using readline()
Line1: Geeks
Line2: for
Line3: Geeks

Using for loop
Line1: Geeks
Line2: for
Line3: Geeks

How do you get a specific line from a file in Python?

Use readlines() to Read the range of line from the File The readlines() method reads all lines from a file and stores it in a list. You can use an index number as a line number to extract a set of lines from it. This is the most straightforward way to read a specific line from a file in Python.

How do I print a file line in Python?

How to print every line of a text file in Python.
a_file = open("sample.txt").
lines = a_file. readlines().
for line in lines:.
print(line).
a_file. close().

How do I read a text file line by line in Python?

Method 1: Read a File Line by Line using readlines() readlines() is used to read all the lines at a single go and then return them as each line a string element in a list. This function can be used for small files, as it reads the whole file content to the memory, then split it into separate lines.

How do you add a line in a file using Python?

Append data to a file as a new line in Python.
Open the file in append mode ('a'). Write cursor points to the end of file..
Append '\n' at the end of the file using write() function..
Append the given line to the file using write() function..
Close the file..