帮助字符串中出现 '%' 的 Python argparse 错误

标签 python string-formatting argparse percent-encoding

我有一个包含“%”的默认值,我也将其插入到我的参数的帮助文档中。例如:

default = "5% foo"
animrender_group.add_argument(
    "--foo",
    default=default,
    help="Foo amount. Default: %s" % default,
)
args = parser.parse_args()

parse_args() 上的 Argparse 错误

[snip]
    args = parser.parse_args()
[snip]"../python2.5/site-packages/argparse.py", line 622, in _expand_help
    return self._get_help_string(action) % params
ValueError: unsupported format character 'O' (0x4f) at index 83

最佳答案

我曾尝试过传统的转义字符,但没有用。然后我发现了一条关于使用“%”作为转义字符的评论,这很有效。例如:

default = "5% foo"
foo_group.add_argument(
    "--foo",
    default=default,
    help="Foo amount. Default: %s" % default.replace(r"%", r"%%")),
)
args = parser.parse_args()

很高兴我不需要用“[百分号]”替换所有“%”。哈。

关于帮助字符串中出现 '%' 的 Python argparse 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21168120/

相关文章:

python - 在 python 日志记录中是否有一个格式化程序来截断字符串?

wpf - 将文字附加到静态资源

python - textwrap.wrap() 和 textwrap.fill() 在 python 2 中如何工作?

python - 如何每天早上 6 点和下午 6 点运行一次 Django celery 任务?

WPF StringFormat={0 :C} showing as dollars

python - 如何将字符串拆分为命令行参数,如 python 中的 shell?

python - 通过 nose 或 pytest 在 Python 的单元测试中集成 argparse 脚本的建议

python - 不同子解析器中的常见位置参数

python - 使用通用基类修复多重继承

用于创建新 Excel 工作簿并填充单元格的 Python 函数