Seek() and Tell() Function in Python


Video Lecture


When we open a file to perform read / write operation, there is a cursor which move inside the file. Whatever the operation(read / write) we perform, that operation will be done at the cursor position.

Within a file, we can get the current position of cursor and move the cursor. To do this python gives us two functions, tell()and seek().

tell() Function in Python

The tell() function, returns the current position of the file pointer(cursor) in a stream.

                    
f = open("test.txt", "r")
cursor_position = f.tell()
print("Cursor Position is :",cursor_position)
data = f.read(5)
print("After reading 5 data from file")
cursor_position = f.tell()
print("Cursor Position is :",cursor_position)
                
OUTPUT
                    
Cursor Position is : 0
After reading 5 data from file
Cursor Position is : 5
                

As we can see in the output, when we open the file, cursor is at beginning (0 position), after reading 5 bytes data, cursor position gets change.


Seek() Function in Python

As we have seen in the above example that when we open a file, cursor is at beginning (0 position). Sometimes, it is required that perform the operation (read / write) from the specific position, and move this cursor around without making any variable read or write, for this purpose there is a seek() function available to move the cursor to the desired location within a file.

Syntax :

                    
f.seek(offset, [start_from])
                

In the above syntax, offset tells how may number of bytes to move forward and start_from is optional, it tells from which place we want to start.

There are three possible values for start_from --

  1. 0 :beginning of file
  2. 1 :current position of file
  3. 2 :end of file

If the argument start_from is not specified, by default it is 0.

Reference point(start_from) at current position / end of file cannot be set in text mode except when offset is equal to 0.

EXAMPLE : Let's suppose there is file test.txt which contains the following text.

If you want to earn something, first learn something.
                    
f = open("abc.txt", "r")
f.seek(15)
print("Cursor Position :",f.tell())
data = f.read()
print(data)
                
OUTPUT
Cursor Position : 15
earn something, first learn something.

Seek() function with negative value:

Seek() function with negative offset value will work, if file is open in binary mode.

                    
f = open("abc.txt", "rb")
f.seek(-10, 2)
print("Cursor Position :",f.tell())
data = f.read().decode('utf-8')
print(data)
                
OUTPUT
Cursor Position : 43
something.

Next chapter is Anonymous Function






 




Training For College Campus

We offers college campus training for all streams like CS, IT, ECE, Mechanical, Civil etc. on different technologies like
C, C++, Data Structure, Core Java, Advance Java, Struts Framework, Hibernate, Python, Android, Big-Data, Ebedded & Robotics etc.

Please mail your requirement at info@prowessapps.in


Projects For Students

Students can contact us for their projects on different technologies Core Java, Advance Java, Android etc.

Students can mail requirement at info@prowessapps.in


CONTACT DETAILS

info@prowessapps.in
(8AM to 10PM):

+91-8527238801 , +91-9451396824

© 2017, prowessapps.in, All rights reserved