Reference library

Files & data

Read and write files safely; parse JSON, CSV, and common text formats.

79 matches
Files & data easy

How to Read a Text File Line by Line in Python

Reads a text file line by line with an enumerated for loop and prints each line number and content.

file-io text-files loops
Python
from pathlib import Path

def read_lines(file_path):
    with open(file_path, 'r', encoding='utf-8') as file:
        for line_number, line in enumerate(file, start=1):
            print(f"Line {line_number}: {line.rstrip()}")

if __name__ == "__main__":
    sample_file = Path("sample.txt")
    sample_file.write_text(…
15 0 Open
Files & data easy

How to Read and Write Files in Python (JSON + Text)

A beginner-friendly helper module to read and write JSON and text files using Python's pathlib and json standard library modules.

json file-io pathlib
Python
import json
from pathlib import Path


def load_json_file(filepath):
    """Load data from a JSON file and return as dict/list."""
    path = Path(filepath)
    with path.open("r", encoding="utf-8") as f:
        return json.load(f)


def save_json_file(filepath, data):
    """Save data to a JSON file."""
    path = P…
15 0 Open
Files & data easy

How to Read and Write Text Files in Python

This code provides simple helper functions to save and load text files using Python's standard pathlib library.

file-io pathlib text-files
Python
from pathlib import Path


def save_text_data(filename: str, content: str) -> None:
    file_path = Path(filename)
    file_path.write_text(content, encoding="utf-8")


def load_text_data(filename: str) -> str:
    file_path = Path(filename)
    return file_path.read_text(encoding="utf-8")


if __name__ == "__main__":…
14 0 Open
Files & data easy

How to Record Audio from Your Microphone in Python

Record audio from your default microphone using PyAudio and save it as a WAV file with a simple reusable function.

audio pyaudio microphone
Python
import pyaudio
import wave

def record_audio(filename: str, duration: int = 5, sample_rate: int = 44100, chunk: int = 1024):
    """Record audio from default microphone and save as WAV file."""
    audio_format = pyaudio.paInt16  # 16-bit resolution
    channels = 1  # Mono
    
    p = pyaudio.PyAudio()
    
    stre…
48 0 Open
Files & data easy

How to Sanitize Filenames in Python

Strip illegal filename characters and clean up names for safe filesystem use.

filenames sanitize re
Python
import re
from pathlib import Path

def sanitize_filename(filename: str, replacement: str = "_") -> str:
    """
    Remove illegal characters from a filename.
    
    Illegal characters: / \\ : * ? " < > |
    Also strips leading/trailing spaces and dots.
    """
    # Remove illegal characters
    sanitized = re.su…
12 0 Open
Files & data easy

How to Split Files by Extension in Python

Group files in a folder by their file extension into a dictionary using pathlib.

pathlib filesystem grouping
Python
from pathlib import Path

def split_files_by_extension(folder_path):
    folder = Path(folder_path)
    files_by_ext = {}

    for file_path in folder.iterdir():
        if file_path.is_file():
            ext = file_path.suffix.lower() or "no_extension"
            files_by_ext.setdefault(ext, []).append(file_path.na…
12 0 Open
Files & data easy

How to Strip BOM When Reading UTF-8 Files in Python

Read a UTF-8 text file with Python's pathlib while automatically stripping the Byte Order Mark (BOM) so the first character isn't a hidden glyph.

bom utf8 pathlib
Python
from pathlib import Path

def read_text_without_bom(file_path):
    """Read a UTF-8 text file, stripping the BOM if present."""
    return Path(file_path).read_text(encoding='utf-8-sig')

if __name__ == "__main__":
    # Create a sample file with BOM for demonstration
    sample_path = Path("sample_with_bom.txt")
    …
13 0 Open
Files & data easy

How to Sum a CSV Column by Group in Python

This code reads a CSV string and sums a specified column for each unique value of a group key using the csv module and defaultdict.

csv aggregation data-summary
Python
import csv
from collections import defaultdict
from io import StringIO

def aggregate_csv(csv_data, group_key, sum_column):
    totals = defaultdict(float)
    reader = csv.DictReader(StringIO(csv_data))
    for row in reader:
        key = row[group_key]
        totals[key] += float(row[sum_column])
    return dict(t…
12 0 Open
Files & data easy

How to Transcode a File from Latin-1 to UTF-8 in Python

Read a latin1-encoded text file and rewrite it as UTF-8 using Python's pathlib and encoding parameters.

encoding utf8 latin1
Python
from pathlib import Path

def transcode_to_utf8(input_path, output_path):
    """Read a latin1-encoded file and write it as UTF-8."""
    source = Path(input_path)
    target = Path(output_path)
    
    with source.open(encoding='latin1') as infile:
        content = infile.read()
    
    with target.open('w', encod…
13 0 Open
Files & data easy

How to Validate JSON Schema Shape in Python

Validate JSON data against a schema using manual checks for required fields, types, and constraints.

json validation schema
Python
import json
from typing import Any, Dict

def validate_person_schema(data: Dict[str, Any]) -> bool:
    """Validate a person object against expected schema shape."""
    if not isinstance(data, dict):
        return False
    
    # Required fields check
    required_fields = {"name", "age", "email"}
    if not requir…
13 0 Open
Files & data easy

How to Validate a JSON File in Python

A beginner-friendly Python helper that reads a JSON file, catches common errors, and returns a status dictionary.

json validation file-handling
Python
import json
from pathlib import Path

def get_valid_json_data(file_path: str) -> dict:
    file = Path(file_path)
    if not file.exists():
        return {"status": "error", "message": f"File not found: {file_path}"}
    
    try:
        data = json.loads(file.read_text())
    except json.JSONDecodeError as e:
     …
13 0 Open
Files & data easy

How to Walk a Directory Tree with os.walk in Python

A generator function that recursively walks a directory tree and yields every file path found using the os.walk generator.

os.walk generators directory-tree
Python
import os


def walk_directory_tree(root_path: str):
    """Walk a directory tree and yield file paths using os.walk generator."""
    for dirpath, dirnames, filenames in os.walk(root_path):
        for filename in filenames:
            yield os.path.join(dirpath, filename)


if __name__ == "__main__":
    # Create a…
12 0 Open
Files & data easy

How to Watch a Directory for New Files in Python

Poll a directory at regular intervals and detect newly added files, printing each one as it appears.

file watching polling os.listdir
Python
import time
import os
from pathlib import Path

WATCH_DIR = Path("watched_files")

def watch_for_new_files(directory: Path, sleep_time: float = 1.0, max_iterations: int = 10):
    """Poll a directory for new files and print when one appears."""
    directory.mkdir(exist_ok=True)
    existing = set(os.listdir(directory…
12 0 Open
Files & data easy

How to Write Bytes to a File in Python with 'wb'

Write a bytearray buffer to a binary file using Python's open() in 'wb' mode, then read it back to confirm the data.

bytes file-writing binary-files
Python
data = bytearray([0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64])

with open("output.bin", "wb") as f:
    f.write(data)

with open("output.bin", "rb") as f:
    content = f.read()

print(f"Written {len(data)} bytes: {content}")
print(f"As string: {content.decode('ascii')}")
13 0 Open
Files & data easy

How to Write Simple XML Documents with ElementTree in Python

Create well-structured XML documents in memory using Python's built-in ElementTree module, complete with nested elements, attributes, and text content.

xml elementtree serialization
Python
import xml.etree.ElementTree as ET

def create_xml_document():
    # Create root element
    root = ET.Element("catalog")
    
    # Create a book element with attributes and children
    book1 = ET.SubElement(root, "book", id="bk101")
    ET.SubElement(book1, "author").text = "Gambardella, Matthew"
    ET.SubElement(…
14 0 Open
Files & data easy

How to Write a Dict to a Pretty JSON File with Indent in Python

Serializes a Python dictionary to a readable JSON file using json.dump with indentation and sorted keys, then prints the file contents to stdout.

json files serialization
Python
import json
from pathlib import Path

data = {
    "name": "Python",
    "version": 3.12,
    "features": ["simple", "readable", "powerful"],
    "nested": {"creator": "Guido van Rossum", "year": 1991}
}

output_path = Path("output.json")

with output_path.open("w", encoding="utf-8") as f:
    json.dump(data, f, inden…
14 0 Open
Files & data easy

How to check file data in Python

Check if a file exists and is a regular file, then return its name, size, line count, and first line.

file pathlib metadata
Python
def check_file_data(file_path):
    from pathlib import Path
    path = Path(file_path)
    if not path.exists():
        return f"File '{file_path}' does not exist."
    if not path.is_file():
        return f"'{file_path}' is not a regular file."
    
    size = path.stat().st_size
    lines = path.read_text(encodin…
15 0 Open
Files & data easy

How to resolve a symlink to its real path in Python with pathlib

Use Path.resolve() to turn a symlink path into its absolute target path, handling relative symlinks and eliminating symbolic links.

pathlib symlink filesystem
Python
from pathlib import Path

def resolve_symlink(path):
    p = Path(path)
    return str(p.resolve())

if __name__ == "__main__":
    # Create a symlink to demonstrate the resolution
    target = Path("/tmp/real_target.txt")
    target.write_text("hello")
    link = Path("/tmp/my_link.txt")
    try:
        link.symlink…
14 0 Open
Files & data easy

How to write an INI config section with configparser in Python

Create an INI configuration file with sections using Python's configparser module and write it to disk.

configparser ini configuration
Python
import configparser

config = configparser.ConfigParser()
config["General"] = {
    "host": "localhost",
    "port": "8080",
    "debug": "true"
}
config["Database"] = {
    "name": "appdb",
    "user": "admin",
    "password": "secret"
}

with open("example.ini", "w") as file:
    config.write(file)

with open("examp…
13 0 Open
Files & data easy

Move a file to an archive folder with shutil.move in Python

Move a file to an archive folder with shutil.move, creating the folder if needed, and return the new path.

shutil pathlib file-move
Python
from pathlib import Path
import shutil

def move_file_to_archive(source_file: str, archive_folder: str) -> Path:
    """Move a file to the archive folder, creating it if needed."""
    src = Path(source_file)
    archive = Path(archive_folder)
    archive.mkdir(parents=True, exist_ok=True)
    destination = archive / …
12 0 Open
Files & data easy

Normalize CSV Column Names to snake_case in Python

Convert CSV header names to snake_case using a regular expression and write the updated file in place.

csv regex snake-case
Python
import csv
import re
import sys


def to_snake_case(header):
    header = re.sub(r"(?<=[a-z0-9])(?=[A-Z])", "_", header)
    header = re.sub(r"[^a-zA-Z0-9]+", "_", header).strip("_").lower()
    return header


def normalize_csv_headers(input_path, output_path=None):
    with open(input_path, newline="", encoding="utf…
13 0 Open
Files & data easy

Parameterize SQL queries in Python to prevent SQL injection

Safely fetch users from a SQLite database using parameterized queries to prevent SQL injection attacks.

sqlite3 sql injection parameterized query
Python
import sqlite3

def get_users_by_name(name):
    """Fetch users safely using parameterized query."""
    conn = sqlite3.connect(':memory:')
    cursor = conn.cursor()
    
    # Create sample table and data
    cursor.execute('CREATE TABLE users (id INTEGER, name TEXT)')
    cursor.executemany('INSERT INTO users (name…
15 0 Open
Files & data easy

Parse CSV with Custom Delimiter and Quote Character in Python

Reads a CSV string with a custom delimiter and quote character using the csv module, returning a list of rows.

csv parsing delimiter
Python
import csv
from io import StringIO

def parse_csv(data, delimiter='|', quotechar='"'):
    reader = csv.reader(StringIO(data), delimiter=delimiter, quotechar=quotechar)
    rows = [row for row in reader]
    return rows

if __name__ == "__main__":
    sample = 'Alice|"Smith, Jr."|25\nBob|"Johnson, Sr."|30'
    result …
13 0 Open
Files & data easy

Read Entire File into String with read Method in Python

Open a file, read its entire content into a string using the .read() method, and clean up with a context manager.

file-io read-method context-manager
Python
from pathlib import Path

def read_file_to_string(file_path: str) -> str:
    """Read the entire file content into a string using the read method."""
    with open(file_path, 'r', encoding='utf-8') as file:
        content = file.read()
    return content

if __name__ == "__main__":
    # Create a temporary file for d…
16 0 Open

Browse by section

Each section groups closely related Python snippets.

Files & data — Python code examples

What you will find here

This page collects files & data snippets — short, copy-ready Python you can paste into our free online IDE and run without installing anything. Each sample includes a plain-English explanation and the full source code.

Samples vs tutorials and challenges

Samples are quick reference — one concept per page. For step-by-step teaching, use our Python tutorials. To test yourself, try quizzes or coding challenges. Clean up style with the Python formatter.