Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将%d添加到argparse帮助文本_Python_Python 2.6_Argparse - Fatal编程技术网

Python 如何将%d添加到argparse帮助文本

Python 如何将%d添加到argparse帮助文本,python,python-2.6,argparse,Python,Python 2.6,Argparse,我在Python2.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"')

我在Python2.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
,因为argparse正在格式化字符串两次,并给出两个错误,解决方案是双重转义
%

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个
%
s.

如果4个
%
s冒犯了你的眼睛,这是一个轻微的选择

  parser.add_argument('--range', metavar='range', type=str,
        help=r'generates a list of host from given range e.g. "host%s.example.com 1 224"' % "%%d") 

你可能已经知道了。。使用
%
进行转义在2中效果很好。7@bernie您应该将其作为答案发布。请更新您的argparse版本。真正的问题是你有什么版本的argparse?我安装的用于Python2.6的版本works.Download(单个文件)。并将其放在代码的旁边。它在未损坏的argparse版本上生成。