如何将%d添加到argparse帮助文本(How to add %d to argparse help text)
我面临这个问题与python 2.6.1 argparse 0.8,我需要添加%d来帮助描述例如
import argparse parser = argparse.ArgumentParser() parser.add_argument('--range', metavar='range', type=str, help='generates a list of host from given range e.g. "host%d.example.com 1 224"') args = parser.parse_args()它会抛出错误
$ ./args.py -h ... python2.6/site-packages/argparse.py", line 458, in _expand_help return action.help % params TypeError: %d format: a number is required, not dict我可以理解,所以我试图逃避%例如
parser.add_argument('--range', metavar='range', type=str, help='generates a list of host from given range e.g. "host%%d.example.com 1 224"')但我仍然遇到另一个错误
$ ./args.py -h ... python2.6/site-packages/argparse.py", line 252, in format_help help = self._root_section.format_help() % dict(prog=self._prog) TypeError: %d format: a number is required, not dict所以我不确定如何正确转义% ,以便在帮助输出中看到%d
I am facing this problem with python 2.6.1 argparse 0.8 , I need to add %d to help description e.g.
import argparse parser = argparse.ArgumentParser() parser.add_argument('--range', metavar='range', type=str, help='generates a list of host from given range e.g. "host%d.example.com 1 224"') args = parser.parse_args()It throws error
$ ./args.py -h ... python2.6/site-packages/argparse.py", line 458, in _expand_help return action.help % params TypeError: %d format: a number is required, not dictWhich I can understand, so I tried to escape % e.g.
parser.add_argument('--range', metavar='range', type=str, help='generates a list of host from given range e.g. "host%%d.example.com 1 224"')But I still get another error
$ ./args.py -h ... python2.6/site-packages/argparse.py", line 252, in format_help help = self._root_section.format_help() % dict(prog=self._prog) TypeError: %d format: a number is required, not dictSo I am not sure how to escape % properly so that I can see %d in help output
最满意答案
由于argparse格式化字符串两次,出现2个错误,解决方案是双重转义% :
parser.add_argument('--range', metavar='range', type=str, help='generates a list of host from given range e.g. "host%%%%d.example.com 1 224"')这是4 % 。
Since argparse is formatting the string twice, giving 2 errors, the solution is to double-escape the %:
parser.add_argument('--range', metavar='range', type=str, help='generates a list of host from given range e.g. "host%%%%d.example.com 1 224"')That's 4 %s.
更多推荐
发布评论