Skip to main content

File Handling and File Operations

File Handling and File Operations in Python

Python has a variety of built-in functions and libraries that make working with files a breeze, and in this article, we'll explore the different techniques and best practices for handling files in Python.

How to Open Files in Python

With Python, you can easily read and write files to the system. To read a file in Python, you can use the open() function.

Reading a File

In Python, you can read a file using the open() function. The following code example demonstrates how to read a file in Python:

file = open('example.txt', 'r')
data = file.read()
print(data)

Reading a File Line-By-Line

Sometimes, you may want to read a file line-by-line. To do that, you can use a for loop to loop through the file line-by-line. The following code demonstrates how to read a file line-by-line in Python:

file = open('example.txt', 'r')
for line in file:
    print(line)

Handling the No Such File or Directory Error

It's not uncommon to encounter a No such file or directory error when working with files in Python. To handle this error, you can use a try and except block to catch the error and handle it accordingly. The following code demonstrates how to handle a No such file or directory error in Python:

try:
    file = open('example.txt', 'r')
except FileNotFoundError:
    print("File not found!")

Different Modes for a File Handling in Python

In Python, there are several modes for file handling (file open modes) including:

  • Read mode ('r'): This mode is used to read an existing file.

  • Write mode ('w'): This mode is used to write to a file. It will create a new file if the file does not exist, and overwrite the file if it does exist.

  • Append mode ('a'): This mode is used to add new data to the end of an existing file (append to a file). If the file does not exist, a new file will be created.

  • Binary mode ('b'): This mode is used to read or write binary data, like images or audio files.

Open a file in the write mode

file = open('example.txt', 'w')

# Write to the file
file.write('Hello, World!')

# Close the file
file.close()

In this example, we first open a file named example.txt in write mode. We write the string 'Hello, World!' to the file and then close it.

Open a file in the read mode

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

# Read the file contents
content = file.read()

# Print the contents
print(content)

# Close the file
file.close()

In this example, we open the same file, example.txt, but this time in read mode. We read the contents of the file using the read() method, save it to a variable named content, and then print the contents to the console. Finally, we close() the file.

File operations

Python provides important modules like os and shutil to perform file operations such as deleting, renaming, copying, and moving files.

File Deleting

You can use the os.remove() method to delete a file in Python. The following code snippet shows how remove file named example.txt.

import os

os.remove("example.txt")

File Renaming

You can use the os.rename() method to rename a file in Python. The following code snippet shows how to rename the file named example.txt to new_example.txt.

import os

os.rename("example.txt", "new_example.txt")

File Copying

You can use the shutil.copy() method to copy a file in Python. The following code snippet shows how to copy the file named example.txt to a new file named new_example.txt.

import shutil

shutil.copy("example.txt", "new_example.txt")

File Moving

You can use the shutil.move() method to move a file in Python. The following code snippet shows how to move the file named example.txt to a new location named new_folder.

import shutil

shutil.move("example.txt", "/path/to/new_folder/example.txt")

File Methods in Python

When working with files in Python, there are several built-in methods that enable you to read, write, and manipulate file contents. These methods provide flexible options for file handling. Here's a guide to some commonly used Python file methods:

How to Read a File

The read() method reads the entire contents of a file and returns them as a string. On the other hand, the readline() method reads a single line from the file. It returns the line as a string and moves the file pointer to the next line.

file = open("example.txt", "w")
content = file.read()
line = file.readline()
file.close()

How to Write to file

The write() method is used to write data to a file. It takes a string as an argument and writes it to the file. Alternatively, the writelines() method allows you to write multiple lines to a file by providing a list of strings.

file = open("example.txt", "w")
file.write("Hello, World!")
lines = ["Line 1", "Line 2", "Line 3"]
file.writelines(lines)
file.close()

How to Close a File

The close() method is essential for proper file handling. It closes the file and releases any system resources associated with it. It is crucial to close the file after performing operations on it to avoid potential issues.

file = open("example.txt", "w")
# Perform operations on the file
file.close()

These are just a few examples of Python file methods that enable you to read, write, and manipulate files. It's important to handle exceptions and close files properly to ensure efficient file management and resource utilization. By utilizing these file methods effectively, you can handle file operations with ease in your Python programs.

File Size Operations

To get the size of a file in Python, you can use various methods provided by the Python standard library. Here are two examples that demonstrate how to retrieve the size of a file using different approaches.

How to get a File Size

The os.path module provides a convenient method, getsize(), to retrieve the size of a file in bytes.

import os

file_path = "example.txt"

try:
    file_size = os.path.getsize(file_path)
    print("File size:", file_size, "bytes")
except FileNotFoundError:
    print("File not found.")

In this example, we use the getsize() function from the os.path module to obtain the size of the file specified by file_path. If the file is found, the size is printed in bytes. If the file is not found, a FileNotFoundError is raised.

Get a File Size with the os.stat Function

Another way to retrieve the size of a file is by using the os.stat() function, which returns a named tuple containing file attributes, including the file size.

import os

file_path = "example.txt"

try:
    file_stats = os.stat(file_path)
    file_size = file_stats.st_size
    print("File size:", file_size, "bytes")
except FileNotFoundError:
    print("File not found.")

In this example, we call os.stat() to obtain the file attributes, including the size, which is accessed using the st_size attribute of the returned named tuple.

By using these approaches, you can easily retrieve the size of a file in Python. Remember to handle exceptions, such as FileNotFoundError, to account for cases where the file does not exist.

Operations with a File Extension

When working with files in Python, you may often need to extract the file extension to determine the type of file you're dealing with. Python provides several ways to obtain the file extension from a file name or path.

import os

filename = "example.txt"
extension = os.path.splitext(filename)[1]

print("File Extension:", extension)

In this example, we use the os.path module, specifically the splitext() function, to separate the file extension from the given file name. It returns a tuple containing the base name and the extension, and we extract the extension using indexing.

How to Check if a File Exists with Python

To check if a file exists, you can use the built-in os module which provides functionality for interacting with the operating system.

import os

# Define the path of the file to check
file_path = "/path/to/file"

# Check if the file exists
if os.path.exists(file_path):
    print("File exists!")
else:
    print("File does not exist.")

In this example, we first import the os module and then define the file_path variable with the path to the file we want to check. The os.path.exists() function is used to check if the file exists, and if so, we print a message indicating that the file exists. If the file does not exist, we print a message indicating that it does not exist.

import os

# Define the path of the file to check
file_path = "/path/to/file"

try:
    # Check if the file exists
    with open(file_path) as f:
        print("File exists!")
except FileNotFoundError:
    print("File does not exist.")

In this example, we use a try and except block to catch the FileNotFoundError exception that is raised if the file does not exist. We try to open the file: with open(file_path) as f: and if the file exists, we print a message indicating that the file exists. If the file does not exist, we catch the FileNotFoundError exception and print a message indicating that the file does not exist.

By using one of these two code examples, you can easily check if a file exists in Python and take the appropriate action depending on the result.

How to Create a Simple File

To create a file in Python, use the built-in open() function. You can specify the file name and the mode in which you want to open the file (read, write, or append).

To print to a file in Python, you can use the print() function with the file parameter:

with open("example.txt", "w") as file:
  print("Hello, World!", file=file)

This code creates a new file named example.txt in write mode, and writes the string Hello, World! to the file.

To write to a file in Python, you can use the .write() method:

with open("example.txt", "w") as file:
  file.write("Hello, World!")

This code creates a new file named example.txt in write mode, and writes the string Hello, World! to the file using the write() method.

Remember to close the file after you are done writing. Using the with statement handles this automatically.

Contribute with us!

Do not hesitate to contribute to Python tutorials on GitHub: create a fork, update content and issue a pull request.

Profile picture for user AliaksandrSumich
Python engineer, expert in third-party web services integration.
Updated: 09/24/2023 - 10:14