Handling Files

Learn how to handle files in Python, opening, reading, writing, appending, truncating, and best practices for safe file handling.

Loading...
Handling Files

File handling is essential for reading data from files, storing output, and working with external data sources in Python.

Opening a File

The open() function is used to open files in Python. It takes two arguments:

  1. File name: The name of the file to open.
  2. Mode: Specifies how the file should be opened (e.g., for reading, writing, or appending).

Example:

f = open('myfile.txt', 'r')  # Opens the file in read mode

File Open Modes

Mode Description
'r' Open for reading (default). Raises an error if the file does not exist.
'w' Open for writing. Creates a new file or overwrites an existing file.
'a' Open for appending. Creates a new file if it doesn’t exist, and appends to the end of the file.
'x' Open for exclusive creation. Raises an error if the file already exists.
't' Text mode (default).
'b' Binary mode (used for non-text files like images, videos, etc.).

Reading from a File

  1. Using read(): Reads the entire content of a file as a string.

    with open('myfile.txt', 'r') as f:
        content = f.read()
        print(content)
  2. Using readline(): Reads a single line from the file.

    with open('myfile.txt', 'r') as f:
        line = f.readline()
        print(line)
  3. Using readlines(): Reads all lines from the file and returns a list of strings.

    with open('myfile.txt', 'r') as f:
        lines = f.readlines()
        print(lines)

Writing to a File

  1. Using write(): Writes a string to a file. Overwrites the file if it exists.

    with open('myfile.txt', 'w') as f:
        f.write('Hello, world!')
  2. Using writelines(): Writes multiple lines (provided as a list or iterable) to a file.

    lines = ['Line 1\n', 'Line 2\n', 'Line 3\n']
    with open('myfile.txt', 'w') as f:
        f.writelines(lines)

Appending to a File

To add content to the end of an existing file, use append mode ('a').

Example:

with open('myfile.txt', 'a') as f:
    f.write('This will be appended.\n')

Closing a File

Always close a file after working with it to release resources. Use close() or the with statement for automatic closure.

Manual closure:

f = open('myfile.txt', 'r')
# Do something
f.close()

Automatic closure using with:

with open('myfile.txt', 'r') as f:
    content = f.read()

File Position: seek() and tell()

  1. seek(offset): Moves the file's position to a specific byte.

Example:

with open('myfile.txt', 'r') as f:
    f.seek(5)  # Move to the 5th byte (skips the first 5 characters)
    data = f.read()
    print(data)
  1. tell(): Returns the current position of the file pointer.
with open('myfile.txt', 'r') as f:
    print(f.tell())  # Prints the current position

Truncating a File: truncate()

Shortens a file to a specified length (in bytes). If no length is provided, it truncates the file from the current position.

It modifies the file permanently.

Example:

with open('myfile.txt', 'w') as f:
    f.write('Hello World!')
    f.truncate(5)  # Keeps only the first 5 bytes
 
with open('myfile.txt', 'r') as f:
    print(f.read())  # Output: Hello

Best Practices

  1. Use with for safe file handling: Automatically closes the file even in case of exceptions.
  2. Use appropriate modes: Choose the correct mode to avoid unintentional data loss.
  3. Validate file paths: Check for file existence and permissions before performing operations.

👉 Next tutorial: Python Virtual Environment

Support my work!