Learning Center
Programmazione Python

Opzioni da riga di comando e analisi degli argomenti con argparse in Python

25 nov 2025
Hostman Team
Hostman Team

Le interfacce a riga di comando (CLI) sono uno dei modi più rapidi ed efficaci per interagire con il software. Consentono di eseguire comandi direttamente, garantendo un’esecuzione più veloce e funzionalità avanzate. Gli sviluppatori creano spesso CLI in Python per diverse applicazioni, utility e script di automazione, permettendo così di elaborare dinamicamente l’input dell’utente. È qui che entra in gioco il modulo argparse di Python.

Il modulo argparse semplifica la gestione degli input da riga di comando e permette agli sviluppatori di creare strumenti interattivi e facili da usare. Essendo parte della libreria standard, consente di definire, elaborare e validare gli input senza dover scrivere logiche complesse.

In questo articolo analizzeremo i concetti principali, esempi utili e funzionalità avanzate del modulo argparse per permetterti di iniziare subito a costruire strumenti CLI solidi.

Come utilizzare argparse in Python per le interfacce a riga di comando
Copia link

Passo 1: Importare il modulo
Copia link

Importa il modulo nel tuo script Python:

import argparse

Questo abilita l’analisi degli argomenti passati dalla riga di comando.

Passo 2: Creare un oggetto ArgumentParser
Copia link

La classe ArgumentParser è la classe più essenziale dell’API del modulo argparse. Per usarla, crea un’istanza:

parser = argparse.ArgumentParser(description="A Hostman tutorial on Python argparse.")

Qui:

  • description spiega cosa fa il programma e viene mostrata quando si esegue --help.

Passo 3: Aggiungere input e opzioni
Copia link

Definisci i parametri che il programma accetta tramite add_argument():

parser.add_argument('filename', type=str, help="Name of the file to process")

parser.add_argument('--verbose', action='store_true', help="Enable verbose mode")

Spiegazione:

  • filename è obbligatorio.

  • --verbose è opzionale e abilita la modalità dettagliata.

Passo 4: Analizzare gli input dell’utente
Copia link

Elabora gli argomenti forniti tramite:

args = parser.parse_args()

I valori elaborati vengono memorizzati come attributi dell’oggetto args.

Passo 5: Accedere ai dati elaborati
Copia link

Esempio:

print(f"File to process: {args.filename}")

if args.verbose:

    print("Verbose mode enabled")

else:

    print("Verbose mode disabled")

Esempi di utilizzo della CLI
Copia link

Elaborazione del file senza modalità verbose
Copia link

python3 file.py example.txt

Elaborazione del file con modalità verbose
Copia link

python3 file.py example.txt --verbose

Mostrare l’aiuto
Copia link

python3 file.py --help

Esempi comuni di utilizzo di argparse
Copia link

Esempio 1: Aggiungere valori predefiniti
Copia link

Alcuni argomenti opzionali necessitano di valori predefiniti. In questo esempio, --timeout ha un valore predefinito di 30 secondi:

import argparse

parser = argparse.ArgumentParser(description="Demonstrating default argument values.")

parser.add_argument('--timeout', type=int, default=30, help="Timeout in seconds (default: 30)")

args = parser.parse_args()

print(f"Timeout value: {args.timeout} seconds")

Spiegazione

  • Importazione del modulo

  • Creazione dell’istanza di ArgumentParser

  • Aggiunta dell’argomento --timeout con valore predefinito

  • Parsing tramite parse_args()

Caso 1: uso del valore predefinito

python file.py

Caso 2: valore personalizzato

python file.py --timeout 60

Esempio 2: Utilizzare choices
Copia link

Il parametro choices limita un argomento a un insieme di valori validi:

parser.add_argument('--mode', choices=['basic', 'advanced'], help="Choose the mode of operation")

Caso 1: valore valido

python3 file.py --mode basic

Caso 2: nessun input

python3 file.py

Caso 3: valore non valido

python3 file.py --mode intermediate

Esempio 3: Gestire valori multipli
Copia link

Il parametro nargs='+' consente di accettare più valori come lista:

parser.add_argument('--numbers', nargs='+', type=int, help="List of numbers to process")

Caso 1: più numeri

python3 file.py --numbers 10 20 30

Caso 2: un numero

python3 file.py --numbers 5

Caso 3: nessun input

python3 file.py

Caso 4: input non valido

python3 file.py --numbers 10 abc 20

Esempio 4: Argomenti opzionali obbligatori
Copia link

Gli argomenti opzionali (quelli che iniziano con --) non sono obbligatori per impostazione predefinita. Tuttavia, puoi renderli obbligatori usando required=True:

parser.add_argument('--config', required=True, help="Path to the configuration file")

Caso 1: input valido

python3 file.py --config settings.json

Caso 2: mancanza dell’argomento obbligatorio

python3 file.py

Funzionalità avanzate
Copia link

Flag booleani
Copia link

parser.add_argument('--debug', action='store_true', help="Enable debugging mode")

Raggruppare argomenti correlati
Copia link

group = parser.add_argument_group('File Operations')

group.add_argument('--input', type=str, help="Input file")

group.add_argument('--output', type=str, help="Output file")

Argomenti mutuamente esclusivi
Copia link

group = parser.add_mutually_exclusive_group()

group.add_argument('--json', action='store_true', help="Output in JSON format")

group.add_argument('--xml', action='store_true', help="Output in XML format")

Conclusione
Copia link

Il modulo argparse semplifica la creazione di CLI affidabili per gestire gli argomenti passati ai programmi Python. Dalle opzioni più semplici alle funzionalità avanzate come choices e nargs, gli sviluppatori possono costruire strumenti potenti, intuitivi e facili da mantenere. Dare nomi chiari agli argomenti e scrivere descrizioni corrette rende gli script più leggibili e manutenzionabili.