Angenommen, Sie erstellen ein Python-Skript wie das folgende.
import argparse
parser = argparse.ArgumentParser(description='')
parser.add_argument('--zoom',
action='store',
type=float,
default=1.0,
help="Expansionsrate(%)")
args = parser.parse_args()
print("zoom is {}".format(args.zoom))
Dies kann normal erfolgen,
$ python hoge.py --zoom 2.0
zoom is 2.0
Ich erhalte einen Wertefehler, wenn ich versuche, Hilfe anzuzeigen.
$ python hoge.py -h
Traceback (most recent call last):
File "hoge.py", line 9, in <module>
args = parser.parse_args()
File "C:\Python37\lib\argparse.py", line 1749, in parse_args
args, argv = self.parse_known_args(args, namespace)
File "C:\Python37\lib\argparse.py", line 1781, in parse_known_args
namespace, args = self._parse_known_args(args, namespace)
File "C:\Python37\lib\argparse.py", line 1987, in _parse_known_args
start_index = consume_optional(start_index)
File "C:\Python37\lib\argparse.py", line 1927, in consume_optional
take_action(action, args, option_string)
File "C:\Python37\lib\argparse.py", line 1855, in take_action
action(self, namespace, argument_values, option_string)
File "C:\Python37\lib\argparse.py", line 1037, in __call__
parser.print_help()
File "C:\Python37\lib\argparse.py", line 2474, in print_help
self._print_message(self.format_help(), file)
File "C:\Python37\lib\argparse.py", line 2458, in format_help
return formatter.format_help()
File "C:\Python37\lib\argparse.py", line 284, in format_help
help = self._root_section.format_help()
File "C:\Python37\lib\argparse.py", line 215, in format_help
item_help = join([func(*args) for func, args in self.items])
File "C:\Python37\lib\argparse.py", line 215, in <listcomp>
item_help = join([func(*args) for func, args in self.items])
File "C:\Python37\lib\argparse.py", line 215, in format_help
item_help = join([func(*args) for func, args in self.items])
File "C:\Python37\lib\argparse.py", line 215, in <listcomp>
item_help = join([func(*args) for func, args in self.items])
File "C:\Python37\lib\argparse.py", line 525, in _format_action
help_text = self._expand_help(action)
File "C:\Python37\lib\argparse.py", line 614, in _expand_help
return self._get_help_string(action) % params
ValueError: unsupported format character ')' (0x29) at index 5
Wie Sie am Ende der Fehlermeldung sehen können, ist die Ausgabezeichenfolge wie folgt formatiert: "return self._get_help_string (action)% params". Es scheint, dass unbeabsichtigtes Parsen durchgeführt wird, wenn "%" enthalten ist.
Die Problemumgehung besteht darin, die Verwendung von "%" wie unten gezeigt zu vermeiden.
import argparse
parser = argparse.ArgumentParser(description='')
parser.add_argument('--zoom',
action='store',
type=float,
default=1.0,
- help="Expansionsrate(%)")
+ help="Expansionsrate(percent)")
args = parser.parse_args()
print("zoom is {}".format(args.zoom))
Alternativ können Sie mit %%
entkommen.
- help="Expansionsrate(%)")
+ help="Expansionsrate(%%)")
Es kam heraus.
$ python hoge.py -h
usage: hoge.py [-h] [--zoom ZOOM]
optional arguments:
-h, --help show this help message and exit
--Zoom ZOOM-Vergrößerung(percent)
$ python hoge.py -h
usage: hoge.py [-h] [--zoom ZOOM]
optional arguments:
-h, --help show this help message and exit
--Zoom ZOOM-Vergrößerung(%)
Recommended Posts