Class 12 Computer Science Chapter 2 – File Handling in Python Notes

CBSE Class 12 Computer Science Chapter 2 File Handling in Python Notes – The Study Smart.

The Study Smart | CBSE Class 12 Computer Science

Welcome to The Study Smart! In this chapter, we will learn about File Handling in Python through easy explanations, practical examples, important Python programs, revision tables and examination-oriented questions.

1. Introduction to File Handling

In Python, variables store data temporarily in computer memory (RAM). When a program stops executing, the data stored in variables is generally lost.

File Handling allows us to store information permanently in files and retrieve it whenever required.

Example: A school maintains student records, marks, attendance and fee details. These records must remain available even after the computer is switched off.

Advantages of File Handling

  1. Permanent storage of information.
  2. Easy retrieval of previously stored data.
  3. Reduces repeated data entry.
  4. Helps manage large amounts of information.
  5. Allows data sharing between programs.
Types of files in Python – Text and Binary Files

2. Types of Files in Python

Python mainly supports two types of files:

  1. Text Files
  2. Binary Files

2.1 Text Files

A text file stores information in the form of readable characters, numbers and symbols. These files can be opened using text editors such as Notepad.

Examples: student.txt, marks.txt, notes.txt and data.csv.

Example:

Name: Rahul
Class: 12
Subject: Computer Science
Marks: 95

2.2 Binary Files

Binary files store information in the form of bytes. They are not directly human-readable through ordinary text editors.

Examples: Images, audio files, video files and Python object files (.dat).

Difference Between Text and Binary Files

Text FileBinary File
Stores readable characters.Stores data as bytes.
Human-readable.Not directly human-readable.
Uses text mode.Uses binary mode.
Example: .txt, .csvExample: .dat, images, audio

3. Opening a File in Python

Before performing any operation on a file, we must open it. Python provides the built-in open() function.

Syntax:

file_object = open("filename", "mode")

Example:

f = open("student.txt", "r")

Important File Attributes

AttributeDescription
f.nameReturns the file name.
f.modeReturns the file opening mode.
f.closedReturns True if the file is closed.

Example:

f = open("student.txt", "r")

print(f.name)
print(f.mode)
print(f.closed)

f.close()

4. Closing a File

After completing file operations, we should close the file using the close() method.

f = open("student.txt", "w")
f.write("Welcome to The Study Smart")
f.close()

Using the with Statement

The with statement automatically closes a file after the block finishes.

with open("student.txt", "r") as f:
    data = f.read()
    print(data)
Python file opening modes explained

5. File Access Modes in Python

File modes determine how a file will be accessed. This is one of the most important topics for board examinations.

ModeMeaningDescription
rReadOpens a file for reading.
wWriteOpens a file for writing and overwrites existing content.
aAppendAdds new content at the end.
r+Read and WriteAllows reading and writing.
w+Write and ReadCreates or overwrites a file and allows reading.
a+Append and ReadAllows reading and appending.
rbRead BinaryOpens a binary file for reading.
wbWrite BinaryOpens a binary file for writing.
abAppend BinaryOpens a binary file for appending.
rb+Read and Write BinaryAllows reading and writing binary data.
wb+Write and Read BinaryCreates or overwrites a binary file.
ab+Append and Read BinaryAllows reading and appending binary data.

Important Points About File Modes

Read Mode (r): Opens an existing file for reading. It gives an error if the file does not exist.

f = open("student.txt", "r")

Write Mode (w): Creates a new file if it does not exist. If the file already exists, its old contents are erased.

f = open("student.txt", "w")

Append Mode (a): Adds new data at the end without deleting existing information. Creates a file if it does not exist.

f = open("student.txt", "a")

Important Board Exam Point: The main difference between w and a is that w overwrites existing contents, whereas a preserves existing contents and adds new data at the end.

6. Writing Data into a Text File

Python provides two important methods for writing data into text files:

  1. write()
  2. writelines()

6.1 write() Method

The write() method writes a string into a file.

Syntax:

file_object.write(string)

Example:

f = open("student.txt", "w")

f.write("Welcome to Python\n")
f.write("Class 12 Computer Science")

f.close()

Important: The write() method does not automatically insert a newline. Use \n whenever you want a new line.

6.2 writelines() Method

The writelines() method writes a sequence of strings into a file.

Example:

f = open("student.txt", "w")

lines = [
    "Python Programming\n",
    "File Handling\n",
    "Computer Science\n"
]

f.writelines(lines)

f.close()

Important: writelines() does not automatically add newline characters between strings.

Difference Between write() and writelines()

write()writelines()
Writes a single string.Writes a sequence of strings.
Accepts a string.Accepts a list or other sequence of strings.
Does not automatically add a newline.Does not automatically add newlines.

7. Reading Data from a Text File

Python provides three important methods for reading data:

  1. read()
  2. readline()
  3. readlines()

7.1 read() Method

The read() method reads the complete contents of a file.

f = open("student.txt", "r")

data = f.read()

print(data)

f.close()

We can also specify the number of characters to read:

data = f.read(5)

7.2 readline() Method

The readline() method reads one line at a time from a file.

f = open("student.txt", "r")

line1 = f.readline()
line2 = f.readline()

print(line1)
print(line2)

f.close()

7.3 readlines() Method

The readlines() method reads all lines and returns them as a list of strings.

f = open("student.txt", "r")

data = f.readlines()

print(data)

f.close()

Difference Between read(), readline() and readlines()

MethodFunction
read()Reads the entire file or a specified number of characters.
readline()Reads one line at a time.
readlines()Reads all lines and returns a list.
File pointer seek and tell in Python

8. File Pointer in Python

A file pointer is a position indicator that determines where the next reading or writing operation will take place.

Python provides two important methods:

  • tell()
  • seek()

8.1 tell() Method

The tell() method returns the current position of the file pointer.

f = open("student.txt", "r")

print(f.tell())

data = f.read(5)

print(f.tell())

f.close()

8.2 seek() Method

The seek() method is used to move the file pointer to a specified position.

Syntax:

file_object.seek(offset, reference_point)
Reference PointMeaning
0Beginning of the file.
1Current position.
2End of the file.

Example:

f = open("student.txt", "r")

print(f.read(5))

f.seek(0)

print(f.read())

f.close()

Here, seek(0) moves the file pointer back to the beginning.

Important: In text mode, supported seek operations are restricted. For ordinary text-file revision, remember seek(0) to return to the beginning.

Difference Between seek() and tell()

seek()tell()
Moves the file pointer.Returns the current file pointer position.
Used for repositioning.Used for finding position.
Takes an offset argument.Does not require an argument.

9. Binary File Handling in Python

Binary files store information in the form of bytes. They are useful for storing images, audio, video and Python objects.

Common binary file modes:

  • rb – Read Binary
  • wb – Write Binary
  • ab – Append Binary

Example:

f = open("image.dat", "wb")

f.write(b"Hello Python")

f.close()

The b before the string indicates a bytes literal.

Pickling and Unpickling in Python

10. Pickle Module in Python

The Pickle module allows Python objects such as lists, dictionaries and tuples to be stored in binary files.

To use Pickle, we must import the module:

import pickle

Important Terms

Pickling: The process of converting a Python object into a byte stream so that it can be stored in a binary file. It is also called Serialization.

Unpickling: The process of converting the stored byte stream back into the original Python object. It is also called Deserialization.

Important Pickle Functions

FunctionPurpose
pickle.dump()Writes an object into a binary file.
pickle.load()Reads an object from a binary file.

10.1 pickle.dump() Method

The dump() method stores a Python object in a binary file.

import pickle

student = {
    "Roll": 101,
    "Name": "Rahul",
    "Marks": 95
}

f = open("student.dat", "wb")

pickle.dump(student, f)

f.close()

10.2 pickle.load() Method

The load() method reads a Python object from a binary file.

import pickle

f = open("student.dat", "rb")

data = pickle.load(f)

print(data)

f.close()

Output:

{'Roll': 101, 'Name': 'Rahul', 'Marks': 95}

10.3 EOFError in Binary Files

EOF stands for End Of File.

When Python tries to read beyond the available data in a file using pickle.load(), it raises an EOFError.

Example:

import pickle

try:
    f = open("student.dat", "rb")

    while True:
        data = pickle.load(f)
        print(data)

except EOFError:
    print("End of file reached")

finally:
    f.close()

This program reads records until no more objects are available.

Safety Note: Only load Pickle files from trusted sources because loading untrusted pickle files can execute malicious code.

11. Quick Revision – Important Functions

FunctionPurpose
open()Opens a file.
close()Closes a file.
read()Reads file contents.
readline()Reads one line.
readlines()Reads all lines into a list.
write()Writes a string.
writelines()Writes a sequence of strings.
seek()Moves the file pointer.
tell()Returns the pointer position.
pickle.dump()Saves a Python object.
pickle.load()Retrieves a Python object.

12. Important Practice Programs

Program 1: Write and Read a Text File

f = open("message.txt", "w")

f.write("Welcome to The Study Smart")

f.close()

f = open("message.txt", "r")

print(f.read())

f.close()

Program 2: Count the Number of Lines in a File

f = open("student.txt", "r")

lines = f.readlines()

print("Total Lines:", len(lines))

f.close()

Program 3: Count Words in a Text File

f = open("student.txt", "r")

data = f.read()

words = data.split()

print("Total Words:", len(words))

f.close()

Program 4: Count Vowels in a Text File

f = open("student.txt", "r")

data = f.read()

count = 0

for ch in data:
    if ch.lower() in "aeiou":
        count += 1

print("Total Vowels:", count)

f.close()

Program 5: Display Lines Starting with Letter A

f = open("student.txt", "r")

for line in f:
    if line.startswith("A") or line.startswith("a"):
        print(line, end="")

f.close()

13. Important Questions and Answers

Q1. What is File Handling in Python?

Ans. File Handling is the process of creating, opening, reading, writing and closing files using Python.

Q2. What is the purpose of the open() function?

Ans. The open() function opens a file in a specified mode and returns a file object.

Q3. What is the difference between write mode and append mode?

Ans. Write mode (w) overwrites existing contents, whereas append mode (a) adds new information at the end.

Q4. What is the difference between text and binary files?

Ans. Text files contain human-readable characters, whereas binary files contain data in byte form.

Q5. What is the purpose of close()?

Ans. The close() method closes an opened file and releases system resources.

Q6. What is the use of seek() and tell()?

Ans. seek() changes the position of the file pointer, whereas tell() returns its current position.

Q7. What is Pickling?

Ans. Pickling is the process of converting a Python object into a byte stream for storage in a binary file.

Q8. What is Unpickling?

Ans. Unpickling is the process of retrieving the original Python object from a stored byte stream.

Q9. Which module is used for Pickling?

Ans. The pickle module.

Q10. What is EOFError?

Ans. EOFError occurs when an attempt is made to read data beyond the end of a file using an operation such as pickle.load().

14. Important MCQs for Practice

  1. Which function is used to open a file in Python?A. read()
    B. open()
    C. write()
    D. close()Answer: B. open()
  2. Which mode overwrites existing file contents?A. r
    B. a
    C. w
    D. rbAnswer: C. w
  3. Which mode is used to append data?A. r
    B. w
    C. a
    D. rbAnswer: C. a
  4. Which method reads the entire file?A. read()
    B. readline()
    C. tell()
    D. seek()Answer: A. read()
  5. Which method reads one line at a time?A. read()
    B. readline()
    C. readlines()
    D. write()Answer: B. readline()
  6. Which method returns all lines as a list?A. read()
    B. write()
    C. readlines()
    D. seek()Answer: C. readlines()
  7. Which method returns the current file pointer position?A. seek()
    B. tell()
    C. close()
    D. dump()Answer: B. tell()
  8. Which method moves the file pointer?A. tell()
    B. read()
    C. seek()
    D. load()Answer: C. seek()
  9. Which module is used for Pickling?A. math
    B. random
    C. pickle
    D. osAnswer: C. pickle
  10. Which function stores an object in a binary file?A. pickle.load()
    B. pickle.dump()
    C. read()
    D. tell()Answer: B. pickle.dump()
  11. Which function retrieves a pickled object?A. pickle.dump()
    B. pickle.load()
    C. write()
    D. seek()Answer: B. pickle.load()
  12. Which mode is used to write binary data?A. w
    B. a
    C. wb
    D. rAnswer: C. wb
  13. What does EOF stand for?A. End of Function
    B. End of File
    C. Entry of File
    D. End of FormatAnswer: B. End of File
  14. Does writelines() automatically add newline characters?A. Yes, always
    B. No
    C. Only in binary mode
    D. Only for listsAnswer: B. No
  15. Which statement automatically closes a file?A. if statement
    B. for statement
    C. with statement
    D. while statementAnswer: C. with statement

15. Tips to Score Good Marks in Board Examinations

  1. Learn all file access modes with their meanings.
  2. Practise the difference between write() and writelines().
  3. Understand read(), readline() and readlines().
  4. Practise output-based questions involving seek() and tell().
  5. Understand Pickling and Unpickling with practical examples.
  6. Practise writing programs without looking at the textbook.
  7. Pay attention to indentation and Python syntax.
  8. Revise important definitions before examinations.

Conclusion

File Handling is an important concept in Python programming because it allows us to store and retrieve information permanently.

Students should understand file types, file modes, reading and writing methods, file pointers and Pickle functions.

Regular programming practice and revision will help you prepare confidently for your CBSE Class 12 Computer Science examination.

Keep learning, keep practising and keep moving towards success with The Study Smart!


Study Smart. Learn Better. Achieve More!

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *