How to read specific lines from a File in Python? - GeeksforGeeks

11 Dec, 2020
Text files are composed of plain text content. Text files are also known as flat files or plain files. Python provides easy support to read and access the content within the file. Text files are first opened and then the content is accessed from it in the order of lines. By default, the line numbers begin with the 0th index. There are various ways to read specific lines from a text file in python, this article is aimed at discussing them. 
File in use: test.txt
Method 1: fileobject.readlines()
A file object can be created in Python and then readlines() method can be invoked on this object to read lines into a stream. This method is preferred when a single line or a range of lines from a file needs to be accessed simultaneously. It can be easily used to print lines from any random starting index to some ending index. It initially reads the entire content of the file and keep a copy of it in memory. The lines at the specified indices are then accessed. 
Example:
Python3
# open the sample file usedfile = open('test.txt')  # read the content of the file openedcontent = file.readlines()  # read 10th line from the fileprint("tenth line")print(content[9])  # print first 3 lines of fileprint("first three lines")print(content[0:3])
Output 
tenth line 
This is line 10.
first three lines 
This is line 1.This is line 2.This is line 3.
Method 2: linecache package 
The linecache package can be imported in Python and then be used to extract and access specific lines in Python. The package can be used to read multiple lines simultaneously. It makes use of cache storage to perform optimization internally. This package opens the file on its own and gets to the particular line. This package has getline() method which is used for the same. 
Syntax: 
getLine(txt-file, line_number)
Example:
Python3
# importing required packageimport linecache  # extracting the 5th lineparticular_line = linecache.getline('test.txt', 4)  # print the particular lineprint(particular_line)
Output :
This is line 5.
Method 3: enumerate()
The enumerate() method is used to convert a string or a list object to a sequence of data indexed by numbers. It is then used in the listing of the data in combination with for loop. Lines at particular indexes can be accessed by specifying the index numbers required in an array. 
Example:
Python3
# open a filefile = open("test.txt")  # lines to printspecified_lines = [0, 7, 11]  # loop over lines in a filefor pos, l_num in enumerate(file):    # check if the line number is specified in the lines to read array    if pos in specified_lines:        # print the required line number        print(l_num)
Output
This is line 1.
This is line 8.
This is line 12.
Python file-handling-programs
python-file-handling
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
How to Install PIP on Windows ?
Check if element exists in list in Python
How To Convert Python Dictionary To JSON?
Python Classes and Objects
How to drop one or multiple columns in Pandas Dataframe
Python | Get unique values from a list
Defaultdict in Python
Python | os.path.join() method
Create a directory in Python
Python | Pandas dataframe.groupby()