</> Code Editor { } Code Formatter

Python Working with Files Exercises


1/20

Python Working with Files Practice Questions

Correct
0%

Which of the following modes opens a file for both reading and writing, without truncating the existing content?


The mode 'r+' opens a file for both reading and writing without deleting existing data.
However, the file must already exist; otherwise, it raises a FileNotFoundError.

  • 'w+' also allows read/write but truncates the file (deletes previous content).
  • 'a+' allows reading and appending but the file pointer starts at the end.
  • 'x+' creates a new file for read/write, and fails if the file already exists.

Quick Recap of Python Working with Files Concepts

If you are not clear on the concepts of Working with Files, you can quickly review them here before practicing the exercises. This recap highlights the essential points and logic to help you solve problems confidently.

What Is File Handling in Python?

File handling in Python refers to the process of opening, reading, writing, and closing files stored on your system. Python mainly works with text files (.txt) and binary files (.bin, images, PDFs, audio, etc.), depending on the mode you choose.

The core of file handling is the open() function:

file = open("example.txt", "r")

It returns a file object that allows reading/writing and offers helpful attributes like .read(), .write(), .seek(), and .close().

File Modes in Python (Read, Write, Append, Binary)

Python supports several file modes depending on the operation you intend to perform. These modes are short, single-character strings that define how the file will be accessed.

ModeMeaningWhen to Use
"r"Read-only (file must exist)Reading existing text files
"w"Write (overwrites file or creates new)Creating or replacing a file
"a"Append (adds text at the end)Keeping old content while adding new
"r+"Read + writeUpdating existing content
"wb"Write in binary modeImages, PDFs, videos
"rb"Read in binary modeWorking with non-text data
"x"Create file, fail if existsSafe file creation

These modes help Python understand how to interact with a file—whether it's text or binary, input or output, or safe vs. destructive operations.

Reading Files in Python

Python offers multiple ways to read file content depending on your needs. You can read the entire file at once, read it line-by-line, or iterate through it efficiently without loading everything into memory.

MethodDescriptionExample
read()Reads the whole file at once
with open("data.txt", "r") as f:
    content = f.read()
          
readline()Reads a single line at a time
with open("notes.txt", "r") as f:
    first_line = f.readline()
          
readlines()Returns all lines as a list
with open("records.txt", "r") as f:
    lines = f.readlines()
          
IterationMemory-efficient line-by-line reading
with open("students.txt", "r") as f:
    for line in f:
        print(line.strip())
          

This approach is particularly useful when working with large files where loading everything into memory would be inefficient.

Writing and Appending to Files in Python

Python allows you to create new files or update existing ones using different writing modes. The most common modes are "w" for writing (overwrites everything) and "a" for appending (adds new content at the end).

OperationDescriptionExample
Writing to a file ("w")Creates a new file or overwrites an existing one.
with open("report.txt", "w") as f:
    f.write("Monthly Report Generated\n")
          
Appending to a file ("a")Adds content at the end of the file without deleting existing data.
with open("report.txt", "a") as f:
    f.write("Additional notes added later.\n")
          

Python writes text exactly as given, so make sure to include newline characters (\n) whenever needed.

Why Use the with Statement?

The with statement is the recommended and safest way to handle files in Python. It automatically manages opening and closing the file, even if an error occurs during reading or writing. This prevents resource leaks and ensures clean, predictable behavior.

  • Automatically opens and closes the file
  • Prevents incomplete writes or resource leaks
  • Makes code cleaner and more readable
with open("data.txt", "r") as file:
    content = file.read()
    

No need to manually call .close() — Python handles it automatically.

Working with Binary Files in Python

Binary files contain non-text data such as images, audio, PDFs, or any raw byte content. When working with these files, Python uses the "rb" (read binary) and "wb" (write binary) modes. These modes ensure data is handled as bytes rather than characters, preserving the exact structure of the file.

ModePurposeExample
"rb"Read binary data (images, videos, PDFs, etc.)
with open("photo.jpg", "rb") as img:
    data = img.read()
          
"wb"Write or create binary files
with open("copy.jpg", "wb") as file:
    file.write(data)
          

Binary operations work with raw bytes, allowing Python to handle files that contain non-readable or structured data.

Common File Handling Errors and How to Avoid Them

File operations can fail for several predictable reasons, such as incorrect paths, missing files, permission issues, or unintended overwriting. Understanding these errors helps make your programs more reliable.

IssueCauseHow to Prevent It
FileNotFoundErrorThe file does not exist at the specified pathVerify the path or use "a" mode to create the file if needed
PermissionErrorAccess denied for reading or writingChoose a valid directory or adjust permissions
Encoding IssuesFile uses a non-UTF encodingSpecify encoding="utf-8" when opening files
Accidental OverwriteUsing "w" mode deletes existing dataUse "a" or "r+" unless overwrite is intended

For safer file operations, wrap your code in try-except blocks to catch and handle these errors gracefully.

When to Use File Handling in Python

File handling is essential whenever your program needs to store, retrieve, or process information that lives outside the code itself. Almost all medium to large applications rely on reading or writing data to power features, track user activity, or exchange information with other systems.

  • Generating logs and reports
  • Importing or exporting data
  • Saving user input, preferences, or configuration settings
  • Reading large datasets efficiently
  • Processing structured text files such as CSV, JSON, or logs
  • Handling uploaded or downloaded files in applications

Whether you're building automation scripts, data-processing tools, or full applications, file I/O is one of the most common tasks in Python.

Best Practices for File Handling in Python

To ensure your file-handling code is safe, reliable, and maintainable, follow these guidelines:

  • Always use with open() to automatically manage file closing.
  • Specify encoding="utf-8" when working with text files to avoid encoding issues.
  • Validate file paths before writing or reading to prevent errors.
  • Avoid loading huge files entirely with .read(); iterate line by line instead.
  • Use "x" mode when creating new files to prevent accidental overwriting.
  • Separate file paths, file data, and processing logic to keep code organized.

By following these best practices, you can handle files efficiently, safely, and in a way that scales for real-world Python applications.



About This Exercise: Python Working with Files Exercises

Welcome to Solviyo’s Python Working with Files exercises, designed to help you master a critical skill for real-world Python programming. From basic file reading and writing to advanced file management techniques, these exercises include explanations, answers, and interactive Python MCQs to ensure a deep understanding of file handling.

What You Will Learn

In this set of Python file handling exercises, you will explore:

  • Opening and closing files using open(), understanding different modes ('r', 'w', 'a'), and safely managing file resources.
  • Reading file contents using various methods, including reading line by line and working with file pointers.
  • Writing and appending data to files, handling text and binary files effectively.
  • Using with open() statements for context-managed file operations.
  • Handling exceptions, file paths, and working with os and pathlib modules for robust file handling.
  • Practicing real-world tasks like creating logs, automating scripts, and processing structured data.
  • Reinforcing concepts with Python MCQs that include answers and explanations for quick revision.

Why Learning Python File Handling Matters

File handling is an essential Python skill for automation, data processing, and building applications that interact with files. Mastering these skills helps you write reliable, maintainable, and efficient code while preparing you for coding interviews, assessments, and professional Python projects.

Start Practicing Python File Handling Today

By completing these exercises, you will gain confidence in reading, writing, and managing files in Python. Each exercise includes detailed explanations and answers to help you understand the reasoning behind solutions. Start practicing Python Working with Files exercises now and develop the skills needed to handle any file-based task with ease and professionalism.