动态分配 argparse 版本号 python

Dynamicly assign argparse version number python

我想在我的代码中添加一个动态版本。 我有以下工作代码:

import argparse

VERSION = 0.2

parser = argparse.ArgumentParser(prog='PDF Generator')
parser.add_argument('-v', '--version', action='version', version='%(prog)s version 0.1')

args = parser.parse_args()

当我 运行 -v 选项时,它给我静态文本 (0.1) 如何更改此文本以便改用全局变量?

当我使用这段代码时:

import argparse

VERSION = 0.2

parser = argparse.ArgumentParser(prog='PDF Generator')
parser.add_argument('-v', '--version', action='version', version='%(prog)s version %f' %VERSION)

args = parser.parse_args()

它引发类型错误:格式需要映射

如有任何帮助,我们将不胜感激。

您也可以使用字符串的连接运算符而不是像 -

这样的字符串格式
parser.add_argument('-v', '--version', action='version', version='%(prog)s version ' + str(VERSION))

或者如 Lukasz 在评论中的回答,您可以将 String.format 用作 -

parser.add_argument('-v', '--version', action='version', version='%(prog)s version {}'.format(VERSION))

Version 在第一次出现 {}

时被替换