File Handling in Python

A. Reading from and Writing to Files:

Reading from Files (open() and read()):

  • To read from a file, you can use the open() function in Python, which opens a file and returns a file object. The read() method is used to read the contents of the file.
  • Syntax for Reading:


# Reading from a file file = open(‘file.txt’, ‘r’) # Opens the file in read mode (‘r’) content = # Reads the entire file content print(content) file.close() # Close the file after reading

Writing to Files (open() and write()):

  • To write to a file, open it with the appropriate mode (‘w’ for write, ‘a’ for append). The write() method is used to write content to the file.
  • Syntax for Writing:


# Writing to a file file = open(‘file.txt’, ‘w’) # Opens the file in write mode (‘w’) file.write(‘Hello, World!\n’) # Writes content to the file file.close() # Close the file after writing

B. File Modes and Operations:

File Modes:

  • Read Mode (‘r’): Opens a file for reading. Raises an error if the file does not exist.
  • Write Mode (‘w’): Opens a file for writing. Creates a new file if it doesn’t exist or truncates the file if it exists.
  • Append Mode (‘a’): Opens a file for appending new content. Creates a new file if it doesn’t exist.
  • Read and Write Mode (‘r+’): Opens a file for both reading and writing.
  • Binary Mode (‘b’): Used in conjunction with other modes (e.g., ‘rb’, ‘wb’) to handle binary files.

File Operations:

  • read(): Reads the entire content of the file or a specified number of bytes.
  • readline(): Reads a single line from the file.
  • readlines(): Reads all the lines of a file and returns a list.
  • write(): Writes content to the file.
  • close(): Closes the file when finished with file operations.

Using with Statement (Context Manager):

  • The with statement in Python is used to automatically close the file when the block of code is exited. It’s a good practice to use it to ensure proper file handling.
  • Syntax:


with open(‘file.txt’, ‘r’) as file: content = print(content) # File is automatically closed outside the ‘with’ block

VII. Object-Oriented Programming (OOP) Basics

A. Classes and Objects:


  • Classes are blueprints for creating objects in Python. They encapsulate data (attributes) and behaviors (methods) into a single unit.
  • Syntax for Class Declaration:


# Class declaration class MyClass: # Class constructor (initializer) def __init__(self, attribute1, attribute2): self.attribute1 = attribute1 self.attribute2 = attribute2 # Class method def my_method(self): return “This is a method in MyClass”


  • Objects are instances of classes. They represent real-world entities and have attributes and behaviors defined by the class.
  • Creating Objects from a Class:


# Creating an object of MyClass obj = MyClass(“value1”, “value2”)

B. Inheritance and Polymorphism:


  • Inheritance allows a class (subclass/child class) to inherit attributes and methods from another class (superclass/parent class).
  • Syntax for Inheritance:


# Parent class class Animal: def sound(self): return “Some sound” # Child class inheriting from Animal class Dog(Animal): def sound(self): # Overriding the method return “Woof!”


  • Polymorphism allows objects of different classes to be treated as objects of a common superclass. It enables the same method name to behave differently for each class.
  • Example of Polymorphism:


# Polymorphism example def animal_sound(animal): return animal.sound() # Same method name, different behaviors # Creating instances of classes animal1 = Animal() dog = Dog() # Calling the function with different objects print(animal_sound(animal1)) # Output: “Some sound” print(animal_sound(dog)) # Output: “Woof!”