6.20.2.4 Generazione dell'help

L'ultima funzionalità che utilizzerete in ogni script sarà quella che permette a optparse di generare messaggi di help. Tutto quello che dovrete fare sarà fornire un argomento help quando aggiungerete un'opzione. Creiamo un nuovo analizzatore, e popoliamolo includendovi delle opzioni (documentate) semplificative:

usage = "utilizzo: %prog [opzioni] arg1 arg2"
parser = OptionParser(usage=usage)
parser.add_option("-v", "--verbose",
                  action="store_true", dest="verbose", default=True,
                  help="fa un sacco di rumore [predefinito]")
parser.add_option("-q", "--quiet",
                  action="store_false", dest="verbose", 
                  help="è mooolto silenzioso (sono a caccia di conigli)")
parser.add_option("-f", "--file", dest="filename",
                  metavar="FILE", help="scrive l'output su FILE"),
parser.add_option("-m", "--mode",
                  default="intermediate",
                  help="modalità interattiva: specificare tra 'principiante', "
                       "'intermedio' [predefinito], 'esperto'")

Se optparse incontra -h o --help sulla riga di comando, oppure se invocate parser.print_help(), stamperà sullo stdout quanto segue:

utilizzo: <vostroscript> [opzioni] arg1 arg2

opzioni:
  -h, --help           mostra questo messaggio ed esce
  -v, --verbose        fa un sacco di rumore [predefinito]
  -q, --quiet          è mooolto silenzioso (sono a caccia di conigli)
  -fFILE, --file=FILE  scrive l'output su FILE
  -mMODE, --mode=MODE  modalità interattiva: specificare tra 'principiante',
                       'intermedio' [predefinito], 'esperto'

Ci sono molti argomenti per aiutare optparse a genereare il miglior messaggio d'aiuto possibile:

Quando si ha a che fare con molte opzioni, conviene raggrupparle per avere un migliore output di aiuto. Una classe OptionParser può contenere diversi gruppi di opzioni, ognuno dei quali può contenere diverse opzioni.

Continuando col parser definito sopra, è semplice aggiungere un OptionGroup:

group = OptionGroup(parser, "Opzioni Pericolose", "Attenzione:
		utilizza queste opzioni a tuo rischio e pericolo.  "
		"Alcune di queste sono note per creare dei danni.")
group.add_option("-g", action="store_true", help="Opzione di un gruppo.")
parser.add_option_group(group)

Il risultato dovrebbe essere l'output di aiuto seguente:

utilizzo: <vostroscript> [opzioni] arg1 arg2

opzioni:
  -h, --help           mostra questo messaggio ed esce
  -v, --verbose        fa un sacco di rumore [predefinito]
  -q, --quiet          è mooolto silenzioso (sono a caccia di conigli)
  -fFILE, --file=FILE  scrive l'output su FILE
  -mMODE, --mode=MODE  modalità interattiva: specificare tra 'principiante',
                       'intermedio' [predefinito], 'esperto'

  Opzioni pericolose:
    Attenzione: utilizza quest opzioni a tuo rischio e
    pericolo. Alcune di queste sono note per creare dei danni. 
    -g                 Opzione di un gruppo.

Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.