MrFaws Docs
Lær Python

Automatisering og CLI

Byg scripts, CLI-værktøjer, batch-jobs og pålidelig automation.

Argumenter med argparse

import argparse

parser = argparse.ArgumentParser(description="Find store filer")
parser.add_argument("path")
parser.add_argument("--min-mb", type=float, default=100)
args = parser.parse_args()

Et godt CLI-værktøj har --help, forståelige fejl og meningsfulde exit codes.

Filautomation

from pathlib import Path

limit = args.min_mb * 1024 * 1024
for path in Path(args.path).rglob("*"):
    if path.is_file() and path.stat().st_size >= limit:
        print(path)

Test scripts på en midlertidig mappe. Tilføj --dry-run, før et værktøj flytter, overskriver eller sletter noget.

Logging

import logging

logging.basicConfig(
    level=logging.INFO,
    format="%(asctime)s %(levelname)s %(message)s",
)
logger = logging.getLogger(__name__)
logger.info("Jobbet starter")

Brug logging til drift og print til brugerens ønskede output.

Subprocess

import subprocess

result = subprocess.run(
    ["git", "status", "--short"],
    check=True,
    capture_output=True,
    text=True,
)
print(result.stdout)

Brug en liste af argumenter og undgå shell=True med brugerinput.

Scheduling

Lad operativsystemet starte scriptet med cron, systemd timer eller Windows Task Scheduler. Scriptet bør kunne køres igen uden at ødelægge data og skrive tydelige logs.

Øvelse

Byg et backupværktøj med configfil, dry-run, checksums, struktureret logging og en rapport over kopierede og fejlede filer.

On this page