Reference library

Python Code Samples

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

382 matches
Automation & scripting easy

How to Mock subprocess Calls in Python with unittest.mock

A Python script that wraps Vagrant up/destroy commands using subprocess, with tests that mock the subprocess call to simulate outputs and errors.

subprocess unittest.mock vagrant
Python
import subprocess
from unittest.mock import patch, Mock


def run_vagrant(action: str) -> str:
    result = subprocess.run(
        ["vagrant", action],
        capture_output=True,
        text=True,
        check=False,
    )
    return result.stdout.strip()


def vagrant_wrapper(action: str) -> str:
    if action n…
15 0 Open
Automation & scripting easy

How to Monitor Domain Expiration Dates in Python

A Python script that checks domain expiration dates using the python-whois library and warns when a domain is expiring soon.

whois domain automation
Python
import whois
from datetime import datetime, timedelta
import time

def check_domain_expiry(domain_name):
    """Check when a domain expires and warn if soon."""
    try:
        w = whois.whois(domain_name)
        expiry = w.expiration_date
        # Handle list or single date
        if isinstance(expiry, list):
   …
36 0 Open
Automation & scripting medium

How to Monitor Website Content Changes in Python

This script fetches a webpage's content, computes its SHA-256 hash, and compares it with the last stored hash to detect and alert on changes.

web scraping monitoring requests
Python
import time
import hashlib
import requests
from pathlib import Path

def fetch_content_hash(url: str) -> str:
    response = requests.get(url, timeout=10)
    response.raise_for_status()
    return hashlib.sha256(response.text.encode()).hexdigest()

def monitor_website(url: str, check_interval: int = 60):
    hash_fil…
50 0 Open
Automation & scripting easy

How to Parse CLI Arguments in Python with argparse

Build a beginner-friendly CLI with argparse that accepts optional --name, --greeting, and --uppercase flags, then prints a customizable greeting.

argparse cli command-line
Python
import argparse

def main():
    parser = argparse.ArgumentParser(description="Greet a user with optional customization.")
    parser.add_argument("--name", default="world", help="Name to greet")
    parser.add_argument("--greeting", default="Hello", help="Greeting word")
    parser.add_argument("--uppercase", action=…
14 0 Open
Automation & scripting easy

How to Perform a DNS Lookup for A Records in Python

Resolve a hostname to IPv4 A records using Python's built-in socket.getaddrinfo and return a sorted list of addresses.

dns socket network
Python
import socket

def get_a_records(hostname):
    """Fetch A records (IPv4 addresses) for a given hostname."""
    try:
        # getaddrinfo with family AF_INET restricts to IPv4 (A records)
        infos = socket.getaddrinfo(hostname, None, socket.AF_INET)
        # Each info tuple: (family, type, proto, canonname, so…
13 0 Open
Automation & scripting medium

How to Ping Multiple Hosts in Parallel with Python ThreadPoolExecutor

A parallel host-pinging script using ThreadPoolExecutor and subprocess to check connectivity across multiple addresses concurrently.

thread-pool subprocess ping
Python
import subprocess
from concurrent.futures import ThreadPoolExecutor
from pathlib import Path

HOSTS = [
    "google.com",
    "github.com",
    "stackoverflow.com",
    "nonexistent.invalid",
    "localhost",
]

def ping_host(host: str) -> str:
    """Ping a single host and return a status string."""
    result = subp…
13 0 Open
Automation & scripting medium

How to Run Tesseract OCR from Python with subprocess

This script uses Python's subprocess module to invoke the Tesseract OCR engine from the command line and return the extracted text.

subprocess ocr tesseract
Python
import subprocess

def ocr_image(image_path):
    command = ["tesseract", image_path, "stdout"]
    result = subprocess.run(command, capture_output=True, text=True)
    return result.stdout.strip()

if __name__ == "__main__":
    # Stub: call the actual tesseract (must be installed)
    text = ocr_image("sample.png")
…
13 0 Open
Automation & scripting easy

How to Simulate a Traceroute in Python

This Python script simulates a network traceroute by generating mock hop IPs, random delays, and a destination reach condition, useful for testing network scripts.

traceroute simulation network
Python
import random
import time

def simulate_traceroute(destination, max_hops=30):
    """Simulate a traceroute to a destination with mock hop delays."""
    print(f"Traceroute to {destination} ({max_hops} hops max):")
    for hop in range(1, max_hops + 1):
        # Mock IP address for the hop
        mock_ip = f"10.0.{ra…
16 0 Open
Automation & scripting easy

How to Split PDF Pages into Ranges in Python

Simulates splitting a PDF into page ranges by validating and returning structured range splits for automation workflows.

pdf automation file-processing
Python
import os

def split_pdf_ranges(pdf_name, num_pages, ranges):
    """
    Simulates splitting a PDF by returning the page ranges that would be split.

    Args:
        pdf_name (str): Name of the PDF file.
        num_pages (int): Total number of pages in the PDF.
        ranges (list of tuple): List of (start, end) …
13 0 Open
Automation & scripting easy

How to Strip EXIF Metadata from Images in Python

Remove EXIF metadata from image bytes using Pillow, with a mock JPEG generator for testing.

exif images metadata
Python
from PIL import Image
from PIL.ExifTags import TAGS
from io import BytesIO
import struct

def strip_exif(image_bytes, remove_metadata=True):
    """Remove EXIF metadata from image bytes."""
    img = Image.open(BytesIO(image_bytes))
    if remove_metadata:
        # Clear all metadata
        img.info.clear()
    # Sa…
14 0 Open
Automation & scripting medium

How to Track GitHub Stars, Forks, and Watchers in Python

Automatically fetch and track stars, forks, and watchers for multiple GitHub repositories, saving snapshots locally as JSON files for historical analysis.

github api automation
Python
import os
import time
import json
import requests
from pathlib import Path
from datetime import datetime

REPOS = [
    "psf/requests",
    "python/cpython",
    "pallets/flask",
]
DATA_DIR = Path("github_metrics")

def fetch_repo_stats(repo):
    url = f"https://api.github.com/repos/{repo}"
    resp = requests.get(ur…
39 0 Open
Automation & scripting easy

How to Update a Hosts File to Block Distractions in Python

This script updates a local hosts file (or a demo file) by adding or updating entries to block distracting websites like Facebook and Twitter.

hosts-file automation blocking
Python
from pathlib import Path

def update_hosts(entries):
    """
    Add or update blocking entries in the hosts file.
    Uses a local demo file by default to avoid system changes.
    """
    hosts_path = Path("demo_hosts.txt")
    
    # Create demo file if it doesn't exist
    if not hosts_path.exists():
        hosts…
11 0 Open
Automation & scripting medium

How to Validate SSL Certificates for Multiple Domains in Python

A Python utility that checks SSL certificate expiry dates for a list of domains using the standard library ssl and socket modules.

ssl certificate validation
Python
import ssl
import socket
from datetime import datetime

def check_ssl_certificate(hostname: str, port: int = 443) -> dict:
    """Validate SSL certificate for a given hostname."""
    context = ssl.create_default_context()
    with socket.create_connection((hostname, port), timeout=5) as sock:
        with context.wra…
45 0 Open
Automation & scripting easy

How to Write an IP Block List to hosts.deny in Python

This Python script validates a list of IP addresses and CIDR ranges, then writes them to a hosts.deny file to block connections at the TCP wrapper level.

hosts.deny ip-block ipaddress
Python
from ipaddress import ip_network

def write_hosts_deny(ip_list, output_file="hosts.deny"):
    with open(output_file, "w") as f:
        for ip in ip_list:
            try:
                ip_network(ip)
                f.write(f"ALL: {ip}\n")
            except ValueError:
                continue
    print(f"Written…
14 0 Open
Automation & scripting easy

How to automatically organize your Downloads folder by file type in Python

This script scans the Downloads folder and moves files into sub-folders based on their extensions (e.g., Images, Documents, Videos).

file organization automation os
Python
import os
import shutil
from pathlib import Path

def organize_downloads_folder(downloads_path=None):
    if downloads_path is None:
        downloads_path = str(Path.home() / "Downloads")
    
    if not os.path.exists(downloads_path):
        print(f"Path {downloads_path} does not exist.")
        return
    
    fi…
40 0 Open
Automation & scripting easy

How to generate an htpasswd bcrypt entry in Python

Create a mock htpasswd file entry with a bcrypt-hashed password for a given username using a simple Python script.

bcrypt htpasswd password
Python
import bcrypt

def mock_htpasswd_entry(username, password):
    salt = bcrypt.gensalt(rounds=12)
    hashed = bcrypt.hashpw(password.encode(), salt).decode()
    return f"{username}:{hashed}"

if __name__ == "__main__":
    entry = mock_htpasswd_entry("demo_user", "s3cretP@ss")
    print(entry)
15 0 Open
Automation & scripting easy

Mock a Helm Upgrade Install Command in Python

Use unittest mock to simulate a Helm upgrade --install call for testing automation scripts without a real cluster.

mock helm testing
Python
from unittest.mock import MagicMock, patch


class HelmClient:
    def upgrade_install(self, release, chart, namespace="default"):
        # Simulates the helm upgrade --install command
        return f"Release {release} upgraded/installed in {namespace} using chart {chart}"


@patch("helm_client.HelmClient.upgrade_in…
13 0 Open
Automation & scripting easy

Mock systemctl Wrapper in Python for Service Testing

A Python class-based mock of systemctl that simulates start, stop, restart, and status operations for a service, useful for testing automation scripts.

systemctl mock automation
Python
import subprocess
import sys

class ServiceManager:
    def __init__(self, service_name):
        self.service_name = service_name
        self.status = "inactive"
    
    def start(self):
        self.status = "active"
        print(f"Starting {self.service_name}... OK")
    
    def stop(self):
        self.status …
14 0 Open
Automation & scripting easy

Monitor Disk Usage and Alert in Python

A Python script that checks disk usage percentage against a threshold and returns an ALERT or OK message with free space details.

disk monitoring shutil
Python
import shutil
import os

def check_disk_usage(path="/", threshold=85.0):
    usage = shutil.disk_usage(path)
    percent_used = (usage.used / usage.total) * 100
    
    if percent_used > threshold:
        return (f"ALERT: Disk usage at {percent_used:.1f}% on {path} "
                f"(exceeds {threshold}% threshold…
13 0 Open
Automation & scripting medium

Mount ISO Loop Device Mock Script in Python

Simulate ISO mounting with a loop device using a mock class — useful for testing scripts that depend on mount/unmount without actual system privileges.

iso loop-device mock
Python
import os
import tempfile
from dataclasses import dataclass
from pathlib import Path

@dataclass
class LoopDevice:
    path: str
    iso_path: str
    mounted: bool = False

    def mount(self, mount_point: str):
        if self.mounted:
            raise RuntimeError(f"Loop device {self.path} already mounted")
      …
14 0 Open
Automation & scripting easy

Parse nginx access log top IPs in Python

Reads an nginx access log line by line, extracts the client IP, and returns the most frequent IPs using a regex and Counter.

nginx log parsing regex
Python
import re
from collections import Counter

def top_ips(log_file, n=10):
    ip_pattern = re.compile(r'^(\S+)')
    ip_counts = Counter()

    with open(log_file, 'r') as f:
        for line in f:
            match = ip_pattern.match(line)
            if match:
                ip_counts[match.group(1)] += 1

    return…
14 0 Open
Automation & scripting easy

Port Scan Localhost Common Ports in Python

Scan common localhost ports (HTTP, HTTPS, SSH, FTP, and more) with a fast socket-based Python script that prints an open/closed status table.

socket port-scanning network
Python
import socket
from datetime import datetime

COMMON_PORTS = {
    80: "HTTP", 
    443: "HTTPS", 
    22: "SSH", 
    21: "FTP", 
    25: "SMTP",
    3306: "MySQL",
    5432: "PostgreSQL"
}

def scan_port(port):
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.settimeout(0.1)
    try:
        resu…
13 0 Open
Automation & scripting medium

Python: Archive Old Logs by Compressing Gzip by Age

A Python script that finds .log files older than a specified age and compresses them into .gz archives while removing the originals.

gzip log-rotation automation
Python
import gzip
import os
import shutil
from pathlib import Path


def archive_logs(log_dir: str, max_age_days: int) -> list[str]:
    """Compress log files older than max_age_days into .gz archives.
    
    Returns a list of compressed file paths.
    """
    cutoff = time.time() - max_age_days * 86400
    compressed = …
14 0 Open
Automation & scripting easy

Rename Files in Folder with Numeric Prefix in Python

Renames all files in a folder by adding a sequential numeric prefix (e.g., 01_, 02_) to each filename using pathlib.

file-renaming pathlib automation
Python
from pathlib import Path

def rename_with_numeric_prefix(folder_path):
    folder = Path(folder_path)
    for index, file_path in enumerate(folder.iterdir(), start=1):
        if file_path.is_file():
            new_name = f"{index:02d}_{file_path.name}"
            new_path = file_path.with_name(new_name)
           …
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.