Reference library

Python Code Samples

Copy-ready Python snippets by topic and difficulty — short, focused, and runnable in the browser editor.

164 matches
Files & data medium

How to Write a List of Lines to a Text File Safely in Python

This code atomically writes a list of strings as lines to a text file using a temporary file and os.replace to prevent corruption.

files atomic-write pathlib
Python
from pathlib import Path
import tempfile
import os

def write_lines_safely(lines: list[str], filepath: str | Path) -> None:
    """Write lines to a text file atomically to avoid corruption."""
    path = Path(filepath)
    path.parent.mkdir(parents=True, exist_ok=True)
    
    fd, temp_path = tempfile.mkstemp(dir=str…
13 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 medium

Join two CSV files on shared key column in Python

Merge rows from two CSV files by a common key column, outputting combined records to a new file.

csv join dictreader
Python
import csv

def join_csv(file1, file2, key, output="joined.csv"):
    # Read first CSV into dict keyed by the join column
    with open(file1, newline="") as f1:
        reader1 = csv.DictReader(f1)
        data1 = {row[key]: row for row in reader1}

    # Read second CSV and merge matching rows
    with open(file2, n…
15 0 Open
Files & data easy

Merge Multiple PDF Files into One Document in Python

Combines multiple PDF files into a single PDF document using the PyPDF2 library's PdfMerger class.

pdf pypdf2 file-merging
Python
import PyPDF2

def merge_pdfs(input_paths, output_path):
    merger = PyPDF2.PdfMerger()
    for path in input_paths:
        merger.append(path)
    merger.write(output_path)
    merger.close()
    print(f"Merged {len(input_paths)} PDFs into '{output_path}'.")

if __name__ == "__main__":
    files = ["file1.pdf", "fi…
43 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

Reassemble File Parts into Original File Bytes in Python

Read sorted part files from a directory and concatenate their bytes into the original file.

file handling binary byte concatenation
Python
import os
import sys
from pathlib import Path

def reassemble_parts(parts_dir: Path, output_path: Path) -> int:
    """
    Reassemble file parts into the original file.

    Args:
        parts_dir: Directory containing the part files
        output_path: Path where the reassembled file will be written

    Returns:
…
12 0 Open
Files & data easy

Rotate Log Files in Python by Size

This code rotates a log file when its size exceeds a threshold, keeping a specified number of backups.

log-rotation files os
Python
import os
import glob
from pathlib import Path

def rotate_log(log_path, max_size_bytes=1024, max_backups=3):
    log_file = Path(log_path)
    if log_file.stat().st_size <= max_size_bytes:
        print(f"Log size {log_file.stat().st_size} bytes <= threshold, no rotation")
        return

    for i in range(max_backu…
13 0 Open
Files & data easy

Split CSV Files into Smaller Chunks in Python

Splits a large CSV file into multiple smaller chunk files, preserving the header row in each chunk.

csv file-splitting batch-processing
Python
import csv
import os

def split_csv(input_file, chunk_size=1000, output_prefix="chunk"):
    """Split a large CSV file into smaller chunks."""
    with open(input_file, 'r', newline='') as infile:
        reader = csv.reader(infile)
        header = next(reader)
        
        file_count = 1
        row_count = 0
  …
44 0 Open
Files & data easy

Sync only changed files between two folders in Python

This code compares two folders and copies only the new or modified files from source to destination, skipping unchanged ones by comparing SHA-256 hashes.

files sync hashing
Python
import hashlib
from pathlib import Path
import shutil

def file_hash(path: Path, chunk_size: int = 8192) -> str:
    hasher = hashlib.sha256()
    with path.open("rb") as f:
        for chunk in iter(lambda: f.read(chunk_size), b""):
            hasher.update(chunk)
    return hasher.hexdigest()

def sync_files(src: s…
16 0 Open
Comprehensions & generators easy

How to Parse CSV Rows as Generator Dicts in Python

Reads a CSV file and yields each row as a dictionary one at a time using a generator, so the file is processed lazily.

csv generator parsing
Python
import csv
from pathlib import Path

def csv_to_dicts(filepath):
    with open(filepath, mode="r", newline="", encoding="utf-8") as file:
        reader = csv.DictReader(file)
        for row in reader:
            yield row

if __name__ == "__main__":
    sample_csv = Path("sample_data.csv")
    sample_csv.write_text…
13 0 Open
AI & LLM integration patterns easy

How to Log Prompts and Completions as JSONL Audit Files in Python

Read a JSONL file of LLM prompt–completion pairs, compute totals and averages, then write an audit summary with timestamps.

jsonl audit llm
Python
import json
from pathlib import Path
from datetime import datetime


def audit_jsonl(filepath):
    logs = []
    with open(filepath, encoding="utf-8") as f:
        for line in f:
            line = line.strip()
            if not line:
                continue
            entry = json.loads(line)
            logs.ap…
15 0 Open
Automation & scripting medium

Automatically Clean Temporary Files from Applications Using Python

A Python script that safely deletes temporary files from common application temp directories across Windows, Linux, and macOS, tracking cleaned count and disk space.

temporary-files cleanup automation
Python
import os
import shutil
import tempfile
import platform

def clean_application_temp_files():
    """Delete common temporary file locations safely."""
    system = platform.system()
    temp_dirs = []

    if system == "Windows":
        temp_dirs.extend([
            os.path.join(os.getenv("LOCALAPPDATA"), "Temp"),
  …
56 0 Open
Automation & scripting medium

Automatically Generate Charts from CSV Files with One Command

Read a CSV file with headers, extract the first two numeric columns, and save a matplotlib line chart as a PNG image.

csv matplotlib charting
Python
import csv
import sys
from pathlib import Path
import matplotlib.pyplot as plt

def generate_chart(csv_path: str) -> None:
    """Read a CSV file with headers and plot the first two numeric columns."""
    data = []
    with open(csv_path, 'r', newline='') as f:
        reader = csv.reader(f)
        headers = next(re…
65 0 Open
Automation & scripting easy

Batch Rename Hundreds of Files in Python

Rename all files with a given extension inside a folder using a sequential counter and a custom prefix.

automation files pathlib
Python
import os
from pathlib import Path

def batch_rename_files(directory: str, prefix: str, extension: str = ".txt") -> None:
    """Rename all files with given extension in directory to prefix_{counter}.ext."""
    path = Path(directory)
    if not path.is_dir():
        print(f"Directory '{directory}' does not exist.")
…
57 0 Open
Automation & scripting medium

Build a Python Utility That Verifies Backup Integrity Automatically

Automatically compute and verify SHA-256 checksums of backup files using a JSON manifest to detect missing or corrupted data.

sha256 backup integrity
Python
import hashlib
import os
import json

def compute_checksum(filepath, algorithm='sha256'):
    """Compute checksum for the given file."""
    hash_func = hashlib.new(algorithm)
    with open(filepath, 'rb') as f:
        for chunk in iter(lambda: f.read(4096), b''):
            hash_func.update(chunk)
    return hash_f…
52 0 Open
Automation & scripting medium

Build a Terminal Dashboard That Displays Real-Time System Performance in Python

A Python script that reads Linux system files to display a real-time terminal dashboard with CPU usage, memory usage, and CPU temperature.

linux system-monitoring terminal
Python
import os, time, sys
from collections import deque

def get_cpu_temp():
    try:
        with open("/sys/class/thermal/thermal_zone0/temp") as f:
            return round(int(f.read().strip()) / 1000, 1)
    except:
        return None

def get_mem_usage():
    with open("/proc/meminfo") as f:
        lines = f.readli…
42 0 Open
Automation & scripting easy

Build an M3U Playlist from Folder MP3s in Python

Scans a folder for MP3 files and writes a valid M3U playlist with absolute file URIs.

m3u playlist pathlib
Python
from pathlib import Path
import sys


def build_playlist(folder: str, output: str = "playlist.m3u") -> str:
    folder_path = Path(folder)
    if not folder_path.is_dir():
        raise FileNotFoundError(f"Folder not found: {folder}")

    mp3_files = sorted(folder_path.glob("*.mp3"))
    if not mp3_files:
        pri…
18 0 Open
Automation & scripting medium

Build an RSS feed from markdown blog posts in Python

Scans a folder of markdown files, extracts titles, dates, and excerpts, and generates a valid RSS 2.0 XML feed.

rss markdown xml
Python
import re
from pathlib import Path
from xml.etree.ElementTree import Element, SubElement, tostring
from datetime import datetime, timezone
from xml.dom import minidom

def build_rss(blog_dir, site_url="https://example.com"):
    feed = Element("rss", version="2.0")
    channel = SubElement(feed, "channel")
    SubElem…
12 0 Open
Automation & scripting easy

Bulk Rename Files in Python with Regex Replacement

Renames every file in a directory by applying a regex substitution to its filename using Python's stdlib re and pathlib.

automation regex pathlib
Python
import re
from pathlib import Path

def bulk_rename_regex(directory, pattern, replacement):
    path = Path(directory)
    renamed = []
    for file in path.iterdir():
        if file.is_file():
            new_name = re.sub(pattern, replacement, file.name)
            if new_name != file.name:
                new_pat…
17 0 Open
Automation & scripting medium

Create a Local Search Engine to Instantly Find Files on Your Computer in Python

Build a local file search engine in Python that indexes files by name, extension, and glob pattern for instant retrieval.

file search indexing os.walk
Python
import os
import sys
import time
from pathlib import Path
import fnmatch

class LocalSearchEngine:
    def __init__(self, root_directory="."):
        self.root_directory = Path(root_directory)
        self.file_index = {}
        
    def build_index(self):
        """Build a complete index of files in the root direc…
44 0 Open
Automation & scripting easy

Create a Simple HTTP File Server in Python

This code creates a simple HTTP file server that serves files from the current working directory on port 8000 using Python's built-in http.server module.

http server file-server
Python
import http.server
import socketserver
import os

PORT = 8000
DIRECTORY = os.getcwd()

class CustomHandler(http.server.SimpleHTTPRequestHandler):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, directory=DIRECTORY, **kwargs)

    def log_message(self, format, *args):
        print(f"[{self.log…
57 0 Open
Automation & scripting medium

Detect Circular Imports Across Python Projects Automatically

This script walks through all .py files in a directory, builds an import graph, and uses depth-first search to find cycles—printing each circular dependency chain.

circular-imports import-graph ast
Python
import ast
import sys
from pathlib import Path
from collections import defaultdict, deque

def find_imports(filepath):
    """Return set of module names imported by a Python file."""
    imports = set()
    try:
        with open(filepath) as f:
            tree = ast.parse(f.read())
    except (SyntaxError, UnicodeDe…
39 0 Open
Automation & scripting medium

Extract Attachments from mbox Mailbox Files in Python

Extract file attachments from an mbox mailbox format using Python's standard library email and mailbox modules.

mbox email attachments
Python
import email
import mailbox
from email.policy import default
from pathlib import Path

def extract_attachments(mbox_path, output_dir):
    output_dir = Path(output_dir)
    output_dir.mkdir(exist_ok=True)
    mbox = mailbox.mbox(mbox_path)
    
    for msg in mbox:
        if msg.is_multipart():
            for part i…
13 0 Open

Browse by section

Each section groups closely related Python snippets.

Guide: free Python code samples library

Copy-ready Python snippets for learners and developers

PythonSkillset code samples are short, focused examples organised by topic and difficulty. Every snippet is server-rendered HTML — readable by search engines and easy to copy. Open any sample, read the notes, copy the code, then press Try in editor to run it in the browser with Pyodide.

How to use this library

  1. Pick a topic section — strings, lists, files, functions, and more
  2. Open a sample, read How it works, and copy the code block
  3. Run it in the IDE, tweak values, then take a related quiz or tutorial lesson

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.