argparse
argparse è lo standard per parametri e help automatico.
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--env", default="dev")
args = parser.parse_args()
subcommands
usa subparser per comandi multipli: build, deploy, report.
sub = parser.add_subparsers(dest="cmd")
report = sub.add_parser("report")
report.add_argument("--format", default="txt")
output curato
struttura l'output con tabelle e colori leggeri.
rows = [("task", "done"), ("lint", "ok")]
for row in rows:
print(f"{row[0]:10} {row[1]}")
packaging rapido
esponi entrypoint in pyproject.toml per installare il comando.
[project.scripts]
buzatu-cli = "app.cli:main"
esercizi
crea un tool che analizza log e produce un report.
aggiungi una modalità verbose con flag -v.
checklist
- usa help chiaro
- aggiungi subcommands
- mantieni output leggibile
- testa su input errati
panoramica
In questo capitolo su cli tools e automazione, argparse, subcommands e output professionale. L'obiettivo è trasformare i concetti in micro-pattern riutilizzabili con esempi piccoli e verificabili.
Lavora in sequenza: leggi, prova, modifica gli snippet e annota i trade-off principali (performance, leggibilità, manutenzione).
badge: automation cli
obiettivi
- capire e applicare argparse in uno scenario reale
- capire e applicare subcommands in uno scenario reale
- capire e applicare output in uno scenario reale
- capire e applicare packaging in uno scenario reale
scheda rapida
def main():
dati = [1, 2, 3]
risultati = [x * 2 for x in dati]
print(risultati)
if __name__ == "__main__":
main()
Adatta questo scheletro agli esempi della lezione e sostituisci i dati con il tuo dominio.
tips
- usa un venv per ogni progetto
- separa logica e I/O
- mantieni funzioni piccole e nominative
- supporta --dry-run
- usa exit code coerenti
- logga operazioni principali
tip: Se uno script modifica file, aggiungi sempre una modalità simulazione.
mini progetto
Tool che rinomina file in batch con prefisso.
- leggi la directory target
- costruisci i nuovi nomi
- applica con --dry-run
- stampa un summary finale
output atteso: uno script o query ripetibile con risultati verificabili.