C'è un modo per rendere la stampa optparse di Python il valore predefinito di un'opzione o un flag quando si mostra l'aiuto con --help?L'optparse di Python può visualizzare il valore predefinito di un'opzione?
risposta
Provare a utilizzare il segnaposto %default
stringa:
# This example taken from http://docs.python.org/library/optparse.html#generating-help
parser.add_option("-m", "--mode",
default="intermediate",
help="interaction mode: novice, intermediate, "
"or expert [default: %default]")
E se è necessario l'accesso programmatico ai valori di default, è possibile ottenere a loro tramite l'attributo defaults
del parser (si tratta di un dict)
E se si desidera aggiungere automaticamente i valori predefiniti a tutte le opzioni specificate, è possibile effettuare le seguenti operazioni:
for option in parser.option_list:
if option.default != ("NO", "DEFAULT"):
option.help += (" " if option.help else "") + "[default: %default]"
Il co i messaggi alla tua domanda indicano già che esiste un altro modo per analizzare gli argomenti chiamati argparse. È stato introdotto in Python 3.2. In realtà depreca optparse
ma viene utilizzato in modo simile.
argpass
viene fornito con diverse classi di formattazione e ad esempio argparse.ArgumentDefaultsHelpFormatter
stamperà anche i valori predefiniti senza dover manipolare manualmente la stringa di aiuto.
Gli oggetti ArgumentParser consentono di personalizzare la formattazione della guida tramite specificando una classe di formattazione alternativa. Attualmente, esistono quattro tali classi:
classe argparse.RawDescriptionHelpFormatter
classe argparse.RawTextHelpFormatter
classe argparse.ArgumentDefaultsHelpFormatter
classe argparse.MetavarTypeHelpFormatter
Un esempio dal i documenti python:
>>> parser = argparse.ArgumentParser(
... prog='PROG',
... formatter_class=argparse.ArgumentDefaultsHelpFormatter)
>>> parser.add_argument('--foo', type=int, default=42, help='FOO!')
>>> parser.add_argument('bar', nargs='*', default=[1, 2, 3], help='BAR!')
>>> parser.print_help()
usage: PROG [-h] [--foo FOO] [bar [bar ...]]
positional arguments:
bar BAR! (default: [1, 2, 3])
optional arguments:
-h, --help show this help message and exit
--foo FOO FOO! (default: 42)
vedere argparse formatting classes
Aggiungi argparse.ArgumentDefaultsHelpFormatter al parser
import argparse
parser = argparse.ArgumentParser(
description='Your application description',
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
dalla documentazione:
ArgumentDefaultsHelpFormatter aggiunge automaticamente informazioni sui valori di default per ciascun messaggio argomento di aiuto: Blockquote
- 1. impostando il valore stringa predefinito di collections.defaultdict di Python
- 2. Python argparse: valore predefinito o valore specificato
- 3. Come gestire il valore predefinito di ArrayList
- 4. Come visualizzare il valore predefinito per il valore DataGridViewComboBoxCell in winform?
- 5. Valore predefinito di BOOL
- 6. qual è il valore predefinito di char?
- 7. Valore predefinito per il costruttore di attributi?
- 8. Modificare il valore predefinito di booleano
- 9. Come afferrare il valore predefinito di TRTTIParamter
- 10. specificare il valore predefinito di std :: function
- 11. il valore predefinito di "valore" nei tipi primitivi
- 12. Python: può unittest visualizzare i valori previsti e reali?
- 13. RestTemplate - valore di timeout predefinito
- 14. Impostazione valore predefinito di DateTimePicker
- 15. di prova per l'uguaglianza al valore predefinito
- 16. Il parametro di tipo generico predefinito non può essere dedotto
- 17. Come si può estendere il comportamento predefinito di Tridion.Cme.Commands.Open.prototype._execute()?
- 18. Perché il valore predefinito di git core.preloadindex è falso?
- 19. come impostare il valore di timeout predefinito di savon
- 20. Qual è il valore di timeout predefinito di TransactionScope?
- 21. Qual è il valore di timeout predefinito di RestSharp RestClient?
- 22. Qual è il valore di timeout predefinito ajax di jQuery?
- 23. Variabile di istanza Python come parametro predefinito
- 24. come impostare python predefinito di python IDLE?
- 25. Qual è il valore predefinito per Guid?
- 26. JavaScript può modificare il valore di @page CSS?
- 27. RingtonePreference Valore predefinito
- 28. Dov'è il parametro predefinito nella funzione Python
- 29. jQuery - impedisce il valore predefinito, quindi continua predefinito
- 30. L'ambito predefinito mutoide sostituisce il valore predefinito. Perché?
Vedere questo SO: http://stackoverflow.com/questions/12151306/argparse-way-to-include-default-values-in-help –
Se qualcuno cerca lo stesso per Argparse: [Argparse: modo di includere valori predefiniti in "--help"?] (http://stackoverflow.com/a/12151325/562769) –