Reference library

Automation & scripting

CLI tools, scheduled jobs, filesystem tasks, and glue scripts that save time.

30 matches
Automation & scripting easy

Build a Command-Line Password Generator in Python

Generate cryptographically strong random passwords using Python's secrets module and print them for command-line use.

secrets password-generator automation
Python
import secrets
import string

def generate_password(length=16):
    """Generate a cryptographically strong random password."""
    alphabet = string.ascii_letters + string.digits + string.punctuation
    password = ''.join(secrets.choice(alphabet) for _ in range(length))
    return password

if __name__ == "__main__":…
50 0 Open
Automation & scripting easy

Check Service Ping Status and Exit Code in Python

Ping a list of hosts, print OK/FAIL per host, and exit with a non-zero code when any host is unreachable.

subprocess ping exit-code
Python
import subprocess
import sys

SERVICES = [
    "8.8.8.8",
    "1.1.1.1",
    "invalid-host",
]

def main():
    failed = []
    for host in SERVICES:
        result = subprocess.run(
            ["ping", "-c", "1", "-W", "2", host],
            stdout=subprocess.DEVNULL,
            stderr=subprocess.DEVNULL,
        …
16 0 Open
Automation & scripting easy

Fetch weather API mock and write dashboard HTML in Python

This script fetches a mock weather API response as a Python dict, builds a simple HTML dashboard, writes it to a file, and prints both the file path and JSON payload.

weather-api dashboard html
Python
from datetime import datetime
import json
import os


def fetch_weather_mock(city: str) -> dict:
    """Return a mock weather payload for a given city."""
    return {
        "city": city,
        "temperature_c": 21.5,
        "condition": "Partly Cloudy",
        "humidity": 58,
        "wind_kph": 12.3,
        "u…
14 0 Open
Automation & scripting easy

How to Auto Organize Downloads by File Extension in Python

A Python script that sorts files in a directory into subfolders based on their file extensions, creating folders automatically.

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

def organize_downloads(download_dir="~/Downloads"):
    """Move files in a directory into subfolders based on file extension."""
    download_path = Path(download_dir).expanduser()
    
    if not download_path.exists():
        print(f"Directory not found: {download_p…
13 0 Open
Automation & scripting easy

How to Build a Python argparse CLI for Beginners

Build a beginner-friendly command-line interface using Python's argparse module with positional and optional arguments.

argparse cli command-line
Python
import argparse

def greet(name, greeting="Hello", uppercase=False):
    message = f"{greeting}, {name}!"
    if uppercase:
        message = message.upper()
    return message

def main():
    parser = argparse.ArgumentParser(description="A simple CLI greet tool for beginners.")
    parser.add_argument("name", help="…
16 0 Open
Automation & scripting easy

How to Build a Simple argparse CLI in Python

Create a beginner-friendly command-line tool with argparse that reads a file, optionally uppercases its lines, and prints a configurable number of lines.

argparse cli automation
Python
import argparse

def main():
    parser = argparse.ArgumentParser(
        description="Automate file processing with a simple CLI tool."
    )
    parser.add_argument("filename", help="Path to the input file")
    parser.add_argument("--uppercase", action="store_true", help="Convert text to uppercase")
    parser.add…
15 0 Open
Automation & scripting easy

How to Build an argparse CLI That Filters File Lines by Keyword in Python

This Python script is a command-line tool built with argparse that reads a text file and prints only the lines that contain (or don't contain) a given keyword.

argparse cli filter
Python
import argparse
import sys

def main():
    parser = argparse.ArgumentParser(description="Filter lines from a file by keyword.")
    parser.add_argument("input", type=str, help="File to read")
    parser.add_argument("keyword", type=str, help="Keyword to filter lines")
    parser.add_argument("--contains", action="sto…
14 0 Open
Automation & scripting easy

How to Build an argparse Command-Line Tool in Python

Create a simple file-info CLI with argparse that counts lines and prints file size, with optional verbose and output flags.

argparse cli command-line
Python
import argparse
import os
from pathlib import Path


def process_file(filepath, verbose=False):
    """Read a file and report its size and line count."""
    path = Path(filepath)
    if not path.exists():
        raise FileNotFoundError(f"File not found: {filepath}")

    content = path.read_text()
    lines = conten…
14 0 Open
Automation & scripting easy

How to Check Website Status Codes in Python

This script checks the HTTP status codes of multiple URLs concurrently using a thread pool and prints the results.

requests threading http-status
Python
import requests
from concurrent.futures import ThreadPoolExecutor

URLS = [
    "https://www.google.com",
    "https://www.python.org",
    "https://www.nonexistent-site-12345.com",
    "https://www.github.com",
]

def check_status(url):
    try:
        response = requests.get(url, timeout=5)
        return url, resp…
12 0 Open
Automation & scripting easy

How to Compress a Folder in Python While Preserving Directory Structure

A Python function that uses zipfile to recursively compress a folder, maintaining the original directory hierarchy inside the zip archive.

compression zipfile file-archiving
Python
import os
import zipfile
from pathlib import Path

def compress_folder(source_dir: str, output_zip: str):
    """
    Compress a folder into a zip file, preserving the directory structure.
    
    Args:
        source_dir: Path to the source directory to compress
        output_zip: Path for the output zip file
    "…
36 0 Open
Automation & scripting easy

How to Create a File Organizer That Sorts Files Automatically in Python

A Python script that scans a given folder, categorizes files by extension (Images, Documents, Audio, Video, Archives, Misc), and moves them into subfolders automatically.

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

FILE_CATEGORIES = {
    "Images": [".jpg", ".jpeg", ".png", ".gif", ".bmp"],
    "Documents": [".pdf", ".docx", ".txt", ".csv", ".xlsx"],
    "Audio": [".mp3", ".wav", ".flac", ".aac"],
    "Video": [".mp4", ".mkv", ".avi", ".mov"],
    "Archives": [".zip", ".tar", ".g…
45 0 Open
Automation & scripting easy

How to Deploy a Static Site Build to an Nginx Directory in Python

Copy a static site build directory into an Nginx web root using Python's shutil and pathlib modules.

automation deployment shutil
Python
import shutil
import os
from pathlib import Path

SRC_DIR = Path("build")
DEST_DIR = Path("/var/www/html")

def deploy_site(src: Path, dest: Path) -> None:
    if not src.exists():
        raise FileNotFoundError(f"Build directory not found: {src}")

    dest.mkdir(parents=True, exist_ok=True)

    for item in src.ite…
16 0 Open
Automation & scripting easy

How to Download a List of URLs to a Directory in Python

This script downloads a list of URLs into a specified directory, creating the folder if needed and keeping original filenames.

urllib download file-io
Python
import urllib.request
from pathlib import Path

def download_urls(url_list, directory):
    """Download each URL in url_list into directory, keeping original filenames."""
    save_dir = Path(directory)
    save_dir.mkdir(parents=True, exist_ok=True)
    
    for url in url_list:
        filename = url.rstrip('/').spl…
16 0 Open
Automation & scripting easy

How to Generate Thumbnails While Maintaining Aspect Ratio in Python

Resize images to fit within maximum dimensions while preserving the original aspect ratio using Pillow (PIL).

pillow image-processing thumbnail
Python
from PIL import Image

def thumbnail_with_aspect_ratio(image_path, output_path, max_width, max_height):
    with Image.open(image_path) as img:
        # Get original dimensions
        width, height = img.size

        # Calculate scaling ratio to fit within max dimensions
        ratio = min(max_width / width, max_h…
13 0 Open
Automation & scripting easy

How to Generate an Inventory CSV of Installed pip Packages in Python

This script uses subprocess and csv to list all installed pip packages and write their names and versions into a CSV inventory file.

pip csv subprocess
Python
import subprocess
import csv

def get_installed_packages():
    """Return a list of (name, version) tuples for installed pip packages."""
    result = subprocess.run(
        ["pip", "list", "--format=freeze"],
        capture_output=True,
        text=True,
        check=True
    )
    packages = []
    for line in r…
14 0 Open
Automation & scripting easy

How to Implement argparse CLI Command in Python

Build a beginner-friendly command-line tool with argparse that accepts positional and optional arguments, flags, and prints a customizable greeting.

argparse cli command-line
Python
import argparse


def main():
    parser = argparse.ArgumentParser(description="A simple CLI tool to greet users.")
    parser.add_argument("name", help="Your name")
    parser.add_argument("-g", "--greeting", default="Hello", help="Greeting word (default: Hello)")
    parser.add_argument("--uppercase", action="store_…
16 0 Open
Automation & scripting easy

How to Import Users from CSV into LDAP-like Dicts in Python

Reads a CSV of user records and converts each row into an LDAP-style dictionary with standard attributes using Python's csv module.

csv ldap import
Python
import csv
import io
from pathlib import Path


def mock_ldap_import(csv_path):
    """
    Reads a CSV file with user data and returns a list of LDAP-like user dicts.
    Adds standard LDAP attributes that would come from directory schema.
    """
    with open(csv_path, newline="", encoding="utf-8") as csvfile:
    …
15 0 Open
Automation & scripting easy

How to Merge PDFs in Python (Mock pypdf Stub)

Merge PDF files by concatenating their raw byte content using a simple stubbed class that mimics the pypdf interface.

pdf merge mock
Python
import io
from hashlib import sha256


class PdfStub:
    def __init__(self, data: bytes, name: str):
        self.data = data
        self.name = name

    def get_content_bytes(self) -> bytes:
        return self.data


def merge_pdfs_mock(pdf_stubs) -> bytes:
    merged = io.BytesIO()
    for stub in pdf_stubs:
   …
14 0 Open
Automation & scripting easy

How to Mock an Ansible Inventory in Python

Load an Ansible-style inventory JSON file into Python and simulate a playbook run across hosts and groups.

ansible inventory automation
Python
import json
from pathlib import Path


class InventoryMock:
    def __init__(self, inventory_file: str):
        self.inventory_file = Path(inventory_file)
        self.hosts = {}

    def load(self):
        if not self.inventory_file.exists():
            raise FileNotFoundError(f"Inventory file {self.inventory_file…
12 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 Parse Terraform Plan Output in Python

Parse mock Terraform plan output text into structured add, change, and destroy lists using Python.

terraform parsing automation
Python
import json
from typing import Dict, List

def parse_terraform_plan_output(plan_output_text: str) -> Dict[str, List[str]]:
    """
    Parses a mock Terraform plan output text into a structured dictionary.
    """
    parsed: Dict[str, List[str]] = {"add": [], "change": [], "destroy": []}

    for line in plan_output_…
11 0 Open
Automation & scripting easy

How to Recover Deleted .txt Files from a Backup in Python

A Python function that searches a backup directory recursively and copies all .txt files to a destination folder, printing each recovered file name and a total count.

backup recovery file-operations
Python
import os
import shutil
from pathlib import Path

def recover_deleted_txt_files(source_backup_dir: str, destination_dir: str) -> None:
    """Recover .txt files from backup directory."""
    backup_path = Path(source_backup_dir)
    dest_path = Path(destination_dir)
    dest_path.mkdir(parents=True, exist_ok=True)

  …
40 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 Tail and Colorize Error Lines in Python

Reads the last N lines of a log file and prints error lines in red using ANSI color codes.

logging terminal colorize
Python
import sys
import time
from pathlib import Path

def tail_colorize(filename: str, lines: int = 20) -> None:
    """Read last N lines of a file, printing errors in red."""
    path = Path(filename)
    if not path.exists():
        print(f"File '{filename}' not found.", file=sys.stderr)
        return

    # Read last …
15 0 Open

Browse by section

Each section groups closely related Python snippets.

Automation & scripting — Python code examples

What you will find here

This page collects automation & scripting 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.