Python File Read/Write

Python provides several methods for interacting with files, making it easy to read from and write to them. Whether you’re working with text or binary files, Python’s built-in functions allow you to open, read, write, and close files with ease. In this guide, we will cover the different ways to handle file operations in Python.

1. Opening a File

Before you can read from or write to a file, you need to open it using the open() function. This function returns a file object, which you can use to perform file operations.

Syntax:

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

Try It Now

Here, filename is the name of the file you want to open, and mode specifies how the file will be opened. Common file modes include:

  • 'r': Read (default mode). Opens the file for reading.
  • 'w': Write. Opens the file for writing (creates a new file or truncates an existing file).
  • 'a': Append. Opens the file for writing, appending to the end of the file.
  • 'rb': Read in binary mode.
  • 'wb': Write in binary mode.

2. Reading from a File

Once the file is opened in read mode, you can use various methods to read its contents:

  • read(): Reads the entire file.
  • readline(): Reads one line at a time.
  • readlines(): Reads all lines and returns a list of lines.

Example: Reading a File

# Open file in read mode
file = open("example.txt", "r")

# Read entire file
content = file.read()
print(content)

# Close the file
file.close()

Try It Now

Example: Reading a File Line by Line

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

# Read file line by line
for line in file:
    print(line.strip())

file.close()

Try It Now

3. Writing to a File

To write to a file, you need to open the file in write or append mode. The write() method writes a string to the file. If the file is opened in write mode ('w'), it will overwrite any existing content in the file. If opened in append mode ('a'), it will add content to the end of the file.

Example: Writing to a File

# Open file in write mode
file = open("example.txt", "w")

# Write to the file
file.write("This is a new line of text.\n")
file.write("This is another line.\n")

file.close()

Try It Now

Example: Appending to a File

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

# Append to the file
file.write("This is an appended line of text.\n")

file.close()

Try It Now

4. Using Context Manager with ‘with’ Statement

In Python, it is recommended to use a context manager when working with files. The with statement automatically handles opening and closing the file, even if an exception occurs. This approach is cleaner and more efficient than manually opening and closing files.

Example: Using ‘with’ to Read a File

# Using 'with' statement to read a file
with open("example.txt", "r") as file:
    content = file.read()
    print(content)

Try It Now

Example: Using ‘with’ to Write to a File

# Using 'with' statement to write to a file
with open("example.txt", "w") as file:
    file.write("Writing with 'with' statement.\n")
    file.write("This ensures the file is properly closed.")

Try It Now

5. Handling File Not Found Error

When attempting to open a file, you may encounter errors, such as the file not existing. It’s important to handle such errors using exception handling techniques like try and except.

Example: Handling FileNotFoundError

try:
    file = open("nonexistent_file.txt", "r")
    content = file.read()
    print(content)
except FileNotFoundError:
    print("Error: File not found.")
finally:
    print("Attempted to open file.")

Try It Now

6. Closing a File

Always close a file after reading from or writing to it using the close() method. This ensures that the resources are released properly. However, if you’re using the with statement, the file will be closed automatically once the block is exited.

Example: Closing a File

file = open("example.txt", "r")
# Perform operations
file.close()

Try It Now

7. Working with Binary Files

Python also allows you to read and write binary files using the 'rb' (read binary) and 'wb' (write binary) modes. These modes are useful when dealing with non-text files such as images or videos.

Example: Reading a Binary File

file = open("example.jpg", "rb")
content = file.read()
print(content[:10])  # Print the first 10 bytes of the file
file.close()

Try It Now

Example: Writing to a Binary File

file = open("copy.jpg", "wb")
file.write(content)
file.close()

Try It Now

Conclusion

In this guide, we’ve learned how to read from and write to files in Python. We covered how to open a file, read its contents, write to it, and handle exceptions. Using context managers with the with statement makes file handling more efficient and less error-prone.