
Python File Operations: Read, Write, Copy and Delete
In this comprehensive guide, we'll explore various file operations in Python, including reading, writing, copying, and deleting files.

Yogini Bende
Sep 05, 2024 • 5 min read
File operations are a crucial aspect of programming, allowing developers to interact with the file system, store data persistently, and process large amounts of information. Python, known for its simplicity and versatility, offers robust built-in functions and methods for file handling. In this comprehensive guide, we'll explore various file operations in Python, including reading, writing, copying, and deleting files.
You can read more in-depth about Python Features before jumping on this topic.
Table of Contents
Opening and Closing Files
Before performing any operations on a file, you need to open it. Python's open()
function is used to open files. It takes two main parameters: the file path and the mode (read, write, append, etc.).
# Opening a file in read mode
file = open('example.txt', 'r')
# Perform operations...
# Close the file
file.close()
It's crucial to close files after you're done with them to free up system resources. However, manually closing files can be error-prone. Python provides a better way to handle file operations using the with
statement:
# Using 'with' statement for automatic file closing
with open('example.txt', 'r') as file:
# Perform operations...
pass # File is automatically closed after this block
The with
statement ensures that the file is properly closed after the block of code is executed, even if an exception occurs.
Reading Files
Python offers several methods to read file contents:
read()
The read()
method reads the entire file content as a string:
with open('example.txt', 'r') as file:
content = file.read()
print(content)
readline()
The readline()
method reads a single line from the file:
with open('example.txt', 'r') as file:
line = file.readline()
print(line)
readlines()
The readlines()
method reads all lines and returns them as a list:
with open('example.txt', 'r') as file:
lines = file.readlines()
for line in lines:
print(line.strip())
Writing to Files
To write to a file, open it in write mode ('w'):
with open('output.txt', 'w') as file:
file.write("Hello, World!")
file.write("\nThis is a new line.")
Note that opening a file in write mode will overwrite its contents if the file already exists.
Appending to Files
To add content to an existing file without overwriting it, use append mode ('a'):
with open('output.txt', 'a') as file:
file.write("\nAppending this line to the file.")
Working with CSV Files
Python's csv
module provides functionality to read from and write to CSV files:
import csv
# Writing to a CSV file
with open('data.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(["Name", "Age", "City"])
writer.writerow(["Alice", 30, "New York"])
writer.writerow(["Bob", 25, "San Francisco"])
# Reading from a CSV file
with open('data.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
print(row)
Copying Files
To copy files, you can use the shutil
module:
import shutil
# Copy a file
shutil.copy2('source.txt', 'destination.txt')
Deleting Files
The os
module provides functions to delete files:
import os
# Delete a file
os.remove('file_to_delete.txt')
File and Directory Management
Python's os
module offers various functions for file and directory management:
import os
# Check if a file exists
if os.path.exists('example.txt'):
print("File exists")
# Create a new directory
os.mkdir('new_directory')
# List files in a directory
files = os.listdir('.')
print(files)
# Get current working directory
current_dir = os.getcwd()
print(current_dir)
# Change directory
os.chdir('new_directory')
Error Handling in File Operations
It's important to handle potential errors when working with files:
try:
with open('nonexistent_file.txt', 'r') as file:
content = file.read()
except FileNotFoundError:
print("The file does not exist.")
except PermissionError:
print("You don't have permission to access this file.")
except IOError as e:
print(f"An I/O error occurred: {e}")
Best Practices for File Handling
Always use the
with
statement to ensure files are properly closed.Use appropriate error handling to manage exceptions.
Use relative or absolute paths consistently.
Be cautious when using write mode to avoid accidental data loss.
Use the
os.path
module for platform-independent file path handling.Consider using the
pathlib
module for more object-oriented file path handling in Python 3.4+.
Python developer jobs
Last but not the least, if you are looking for jobs as a Python developer, you are at a right place. Check out Peerlist Jobs to find many remote jobs and apply them with your Peerlist Profile.
Conclusion
By mastering these file operations, you'll be well-equipped to handle various file-related tasks in your Python projects, from simple data storage to complex data processing pipelines.
If you are looking to learn other Python concepts like Switch Statement, you can check our other articles on this topic.
By honing your skills with these fundamental constructs, you'll be better equipped to tackle more complex programming challenges and write cleaner, more efficient Python code.
Happy coding!