Advanced File Handling

Python File I/OFree Lesson

Advertisement

Advanced File Handling

Binary files, memory mapping, temporary files, and file patterns.

Overview

Master advanced file handling techniques.

Binary Files

# Write binary
data = bytes([72, 101, 108, 108, 111])  # "Hello"
with open("file.bin", "wb") as f:
    f.write(data)

# Read binary
with open("file.bin", "rb") as f:
    data = f.read()
    print(data)  # b'Hello'

# Image handling
from PIL import Image

# Read image
img = Image.open("photo.jpg")
print(img.size)

# Save image
img.save("copy.jpg")

Memory Mapping

import mmap

# Create memory-mapped file
with open("large_file.bin", "r+b") as f:
    mm = mmap.mmap(f.fileno(), 0)
    
    # Read/write like bytes
    print(mm[:10])
    mm[0:5] = b"Hello"
    
    mm.close()

Temporary Files

import tempfile

# Temporary file
with tempfile.NamedTemporaryFile(mode='w', suffix='.txt', delete=False) as f:
    f.write("temp data")
    temp_name = f.name

# Temporary directory
with tempfile.TemporaryDirectory() as tmpdir:
    print(f"Working in: {tmpdir}")
    # Files created here are automatically deleted

# Temporary file object
tf = tempfile.TemporaryFile(mode='w+t')
tf.write("Hello")
tf.seek(0)
print(tf.read())
tf.close()

File Patterns

import os
import glob

# Find files
txt_files = glob.glob("*.txt")
print(txt_files)

# Recursive search
all_py_files = glob.glob("**/*.py", recursive=True)

# File operations
def process_files(directory, pattern):
    for filepath in glob.glob(os.path.join(directory, pattern)):
        if os.path.isfile(filepath):
            with open(filepath) as f:
                yield filepath, f.read()

# Streaming large files
def read_large_file(file_path):
    with open(file_path, 'r') as f:
        for line in f:
            yield line.strip()

Practice

Implement a file backup system that handles binary and text files.

Advertisement

Need Expert Python Help?

Get personalized tutoring, project support, or professional consulting.

Advertisement