python argparse: Come posso visualizzare la guida automaticamente in caso di errore?

StackOverflow https://stackoverflow.com/questions/3636967

  •  30-09-2019
  •  | 
  •  

Domanda

Al momento quando entro opzioni non valide o omettere argomenti posizionali, argparse mi calci tornare al prompt e visualizza l'utilizzo per la mia app. Questo è ok, ma avrei preferito visualizzare automaticamente la piena messa in vendita di aiuto (che spiega le opzioni, ecc) che richiede all'utente di tipo

./myscript.py -h

Grazie!

Jamie

È stato utile?

Soluzione

filo oltre a gruppi di Google ha il seguente frammento di codice che sembra fare il trucco (leggermente modificato).

class DefaultHelpParser(argparse.ArgumentParser):
    def error(self, message):
        sys.stderr.write('error: %s\n' % message)
        self.print_help()
        sys.exit(2)

Altri suggerimenti

Per stampare aiuto si potrebbe desiderare di utilizzare: la funzione print_help su istanza ArgumentParser

parser = argparse.ArgumentParser()
(...)
parser.print_help()

Per stampare un messaggio di aiuto in caso di errore è necessario creare propria sottoclasse di esempio ArgumentParser, tale metodo override error(). Per esempio così:

class MyParser(argparse.ArgumentParser): 
   def error(self, message):
      sys.stderr.write('error: %s\n' % message)
      self.print_help()
      sys.exit(2)

Quando questo parser incontra linea argomento di analizzarlo verrà stampata aiuto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top