argparse TypeError problem

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
mit
User
Beiträge: 285
Registriert: Dienstag 16. September 2008, 10:00

Hallo,

Code: Alles auswählen

import argparse

if __name__ == '__main__':
    parser = argparse.ArgumentParser(
            description='Test')
            
    parser.add_argument('--alpha', default=0.05, type=float,
                     help="Test [default: %default]")

    args = parser.parse_args()


verursacht diese Fehlermeldung:

Code: Alles auswählen

$ python arg.py -h
Traceback (most recent call last):
  File "arg.py", line 10, in <module>
    args = parser.parse_args()
  File "/usr/lib64/python2.7/argparse.py", line 1688, in parse_args
    args, argv = self.parse_known_args(args, namespace)
  File "/usr/lib64/python2.7/argparse.py", line 1720, in parse_known_args
    namespace, args = self._parse_known_args(args, namespace)
  File "/usr/lib64/python2.7/argparse.py", line 1926, in _parse_known_args
    start_index = consume_optional(start_index)
  File "/usr/lib64/python2.7/argparse.py", line 1866, in consume_optional
    take_action(action, args, option_string)
  File "/usr/lib64/python2.7/argparse.py", line 1794, in take_action
    action(self, namespace, argument_values, option_string)
  File "/usr/lib64/python2.7/argparse.py", line 994, in __call__
    parser.print_help()
  File "/usr/lib64/python2.7/argparse.py", line 2327, in print_help
    self._print_message(self.format_help(), file)
  File "/usr/lib64/python2.7/argparse.py", line 2301, in format_help
    return formatter.format_help()
  File "/usr/lib64/python2.7/argparse.py", line 279, in format_help
    help = self._root_section.format_help()
  File "/usr/lib64/python2.7/argparse.py", line 209, in format_help
    func(*args)
  File "/usr/lib64/python2.7/argparse.py", line 209, in format_help
    func(*args)
  File "/usr/lib64/python2.7/argparse.py", line 515, in _format_action
    help_text = self._expand_help(action)
  File "/usr/lib64/python2.7/argparse.py", line 601, in _expand_help
    return self._get_help_string(action) % params
TypeError: %d format: a number is required, not dict
Wie koennte man diese Problem beheben?
BlackJack

@mit: Das Problem behebt man in dem man den Platzhalter richtig schreibt. Im Moment steht da '%d' als Platzhalter für eine Gleitkommazahl, gefolgt von dem sinnlosen Text 'efault'. Was da stehen müsste als Platzhalter ist '%(default)s'.
mit
User
Beiträge: 285
Registriert: Dienstag 16. September 2008, 10:00

Danke es funktioniert.
Antworten