- Python Basics
- Python - Home
- Python - Overview
- Python - History
- Python - Features
- Python vs C++
- Python - Hello World Program
- Python - Application Areas
- Python - Interpreter
- Python - Environment Setup
- Python - Virtual Environment
- Python - Basic Syntax
- Python - Variables
- Python - Data Types
- Python - Type Casting
- Python - Unicode System
- Python - Literals
- Python - Operators
- Python - Arithmetic Operators
- Python - Comparison Operators
- Python - Assignment Operators
- Python - Logical Operators
- Python - Bitwise Operators
- Python - Membership Operators
- Python - Identity Operators
- Python - Operator Precedence
- Python - Comments
- Python - User Input
- Python - Numbers
- Python - Booleans
- Python Control Statements
- Python - Control Flow
- Python - Decision Making
- Python - If Statement
- Python - If else
- Python - Nested If
- Python - Match-Case Statement
- Python - Loops
- Python - for Loops
- Python - for-else Loops
- Python - While Loops
- Python - break Statement
- Python - continue Statement
- Python - pass Statement
- Python - Nested Loops
- Python Functions & Modules
- Python - Functions
- Python - Default Arguments
- Python - Keyword Arguments
- Python - Keyword-Only Arguments
- Python - Positional Arguments
- Python - Positional-Only Arguments
- Python - Arbitrary Arguments
- Python - Variables Scope
- Python - Function Annotations
- Python - Modules
- Python - Built in Functions
- Python Strings
- Python - Strings
- Python - Slicing Strings
- Python - Modify Strings
- Python - String Concatenation
- Python - String Formatting
- Python - Escape Characters
- Python - String Methods
- Python - String Exercises
- Python Lists
- Python - Lists
- Python - Access List Items
- Python - Change List Items
- Python - Add List Items
- Python - Remove List Items
- Python - Loop Lists
- Python - List Comprehension
- Python - Sort Lists
- Python - Copy Lists
- Python - Join Lists
- Python - List Methods
- Python - List Exercises
- Python Tuples
- Python - Tuples
- Python - Access Tuple Items
- Python - Update Tuples
- Python - Unpack Tuples
- Python - Loop Tuples
- Python - Join Tuples
- Python - Tuple Methods
- Python - Tuple Exercises
- Python Sets
- Python - Sets
- Python - Access Set Items
- Python - Add Set Items
- Python - Remove Set Items
- Python - Loop Sets
- Python - Join Sets
- Python - Copy Sets
- Python - Set Operators
- Python - Set Methods
- Python - Set Exercises
- Python Dictionaries
- Python - Dictionaries
- Python - Access Dictionary Items
- Python - Change Dictionary Items
- Python - Add Dictionary Items
- Python - Remove Dictionary Items
- Python - Dictionary View Objects
- Python - Loop Dictionaries
- Python - Copy Dictionaries
- Python - Nested Dictionaries
- Python - Dictionary Methods
- Python - Dictionary Exercises
- Python Arrays
- Python - Arrays
- Python - Access Array Items
- Python - Add Array Items
- Python - Remove Array Items
- Python - Loop Arrays
- Python - Copy Arrays
- Python - Reverse Arrays
- Python - Sort Arrays
- Python - Join Arrays
- Python - Array Methods
- Python - Array Exercises
- Python File Handling
- Python - File Handling
- Python - Write to File
- Python - Read Files
- Python - Renaming and Deleting Files
- Python - Directories
- Python - File Methods
- Python - OS File/Directory Methods
- Object Oriented Programming
- Python - OOPs Concepts
- Python - Object & Classes
- Python - Class Attributes
- Python - Class Methods
- Python - Static Methods
- Python - Constructors
- Python - Access Modifiers
- Python - Inheritance
- Python - Polymorphism
- Python - Method Overriding
- Python - Method Overloading
- Python - Dynamic Binding
- Python - Dynamic Typing
- Python - Abstraction
- Python - Encapsulation
- Python - Interfaces
- Python - Packages
- Python - Inner Classes
- Python - Anonymous Class and Objects
- Python - Singleton Class
- Python - Wrapper Classes
- Python - Enums
- Python - Reflection
- Python Errors & Exceptions
- Python - Syntax Errors
- Python - Exceptions
- Python - try-except Block
- Python - try-finally Block
- Python - Raising Exceptions
- Python - Exception Chaining
- Python - Nested try Block
- Python - User-defined Exception
- Python - Logging
- Python - Assertions
- Python - Built-in Exceptions
- Python Multithreading
- Python - Multithreading
- Python - Thread Life Cycle
- Python - Creating a Thread
- Python - Starting a Thread
- Python - Joining Threads
- Python - Naming Thread
- Python - Thread Scheduling
- Python - Thread Pools
- Python - Main Thread
- Python - Thread Priority
- Python - Daemon Threads
- Python - Synchronizing Threads
- Python Synchronization
- Python - Inter-thread Communication
- Python - Thread Deadlock
- Python - Interrupting a Thread
- Python Networking
- Python - Networking
- Python - Socket Programming
- Python - URL Processing
- Python - Generics
- Python Libraries
- NumPy Tutorial
- Pandas Tutorial
- SciPy Tutorial
- Matplotlib Tutorial
- Django Tutorial
- OpenCV Tutorial
- Python Miscellenous
- Python - Date & Time
- Python - Maths
- Python - Iterators
- Python - Generators
- Python - Closures
- Python - Decorators
- Python - Recursion
- Python - Reg Expressions
- Python - PIP
- Python - Database Access
- Python - Weak References
- Python - Serialization
- Python - Templating
- Python - Output Formatting
- Python - Performance Measurement
- Python - Data Compression
- Python - CGI Programming
- Python - XML Processing
- Python - GUI Programming
- Python - Command-Line Arguments
- Python - Docstrings
- Python - JSON
- Python - Sending Email
- Python - Further Extensions
- Python - Tools/Utilities
- Python - GUIs
- Python Useful Resources
- Python Compiler
- NumPy Compiler
- Matplotlib Compiler
- SciPy Compiler
- Python - Programming Examples
- Python - Quick Guide
- Python - Useful Resources
- Python - Discussion
Python File seek() Method
The Python File seek() method sets the file's cursor at a specified position in the current file. A file's cursor is used to store the current position of the read and write operations in a file; and this method can move this file cursor forward or backward.
For instance, whenever we open a file to read from it, the file cursor is always positioned at 0. It is gradually incremented as we progress through the content of the file. But, some scenarios require the file to be read from a particular position in the file. This is where this method comes into picture.
Let us look at the various cases in which the seek() method is used −
- If the file is opened for appending using either 'a' or 'a+', any seek() operations will be undone at the next write.
- If the file is only opened for writing in append mode using 'a', this method is essentially a no-op, but it remains useful for files opened in append mode with reading enabled (mode 'a+').
- If the file is opened in text mode using 't', only offsets returned by tell() are legal. Use of other offsets causes undefined behaviour.
- All file objects are seekable.
Syntax
Following is the syntax for the Python File seek() method −
fileObject.seek(offset[, whence])
Parameters
offset − This is the number of positions of the read/write pointer to move within the file.
whence − (Optional) It defaults to 0; which means absolute file positioning, other values are 1 which means seek relative to the current position and 2 means seek relative to the file's end.
Return Value
This method does not return any value. It just sets the cursor at the specified offset.
Example
Consider a demo file "foo.txt" containing 5 lines.
This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line
The following example shows the usage of the Python File seek() method. We are trying to set the pointer at the beginning of the file. Hence, we pass the offset argument as 0 to this method.
# Open a file fo = open("foo.txt", "r+") print("Name of the file: ", fo.name) # Assuming file has following 5 lines # This is 1st line # This is 2nd line # This is 3rd line # This is 4th line # This is 5th line line = fo.readline() print("Read Line:", line) # Again set the pointer to the beginning fo.seek(0, 0) line = fo.readline() print("Read Line:", line) # Close opened file fo.close()
When we run above program, it produces following result −
Name of the file: foo.txt Read Line: This is 1st line Read Line: This is 1st line
Example
The new position of the pointer can also be set relative to its current position in the file. To do that, we must always open the file in the binary mode: it can either be in reading binary or writing binary modes. Then, we are passing the number of positions to move from the current position as the offset argument and the value 1 as the whence argument to the method.
# Open a file fo = open("foo.txt", "rb") print("Name of the file: ", fo.name) # Set the pointer to the new position relative to current position fo.seek(18, 1) line = fo.read() print("File Contents:", line) # Close opened file fo.close()
The output produced after executing the given program will be in the binary form. But it can be decoded into a string using the decode() method.
Name of the file: foo.txt File Contents: b'This is 2nd line\r\nThis is 3rd line\r\nThis is 4th line\r\nThis is 5th line'
Example
However, in some cases we need the pointer to be set at the ending of the file; such as appending information to an existing file using the read and write (r+) mode. Let us see an example below demonstrating the same on a file named "foo.txt".
# Open a file fo = open("foo.txt", "r+") print("Name of the file: ", fo.name) # Set the pointer to the ending fo.seek(0, 2) fo.write("This is the end of file") # Again set the pointer at the beginning fo.seek(0, 0) line = fo.read() print("File Contents:", line) # Close opened file fo.close()
Once we compile and run the program above, the output is produced as follows −
Name of the file: foo.txt File Contents: This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th lineThis is the end of file
Example
As we have already discussed above, the file's cursor can also move backwards from the end of the file; or from a certain position. In the given example, we are opening a file "foo.txt" in the reading binary (rb) mode. The file cursor is set at the end of file by passing the whence argument as 2 and by passing negative values as the offset parameter to the method, we are trying to move the file cursor backwards.
# Open a file fo = open("foo.txt", "rb") print("Name of the file: ", fo.name) # Move the pointer backwards using negative offset fo.seek(-36, 2) line = fo.read() print("File Contents:", line) # Close opened file fo.close()
If we compile and run the program above, the file contents are read from the end of file up to the given number of positions.
Name of the file: foo.txt File Contents: b'\r\nThis is 4th line\r\nThis is 5th line'
Example
The tell() method goes hand-in-hand with the seek() method. In the following example, we are trying to use the seek() method to set the file cursor at a specific position and then, use the tell() method to retrieve this position set.
# Open a file fo = open("foo.txt", "r") print("Name of the file: ", fo.name) # Move the pointer backwards using negative offset fo.seek(18, 0) line = fo.read() print("File Contents:", line) #Using tell() method retrieve the cursor position from the ending print("File cursor is present at position", fo.tell()) # Close opened file fo.close()
On executing the program above, the output is displayed as −
Name of the file: foo.txt File Contents: This is 2nd line This is 3rd line This is 4th line This is 5th line File cursor is present at position 88
To Continue Learning Please Login
Login with Google