Python 使用带有多个参数的fromfile“u prefix”字符(nargs=";*";)

Python 使用带有多个参数的fromfile“u prefix”字符(nargs=";*";),python,argparse,Python,Argparse,我希望在python argparse中使用文件参数,文件中的行如下所示: --contour_levels=-4 -2 0 2 4 或: 有没有一个简单的方法可以做到这一点?我知道我可以使用第一个级别,然后每行列出一个其他级别,但这看起来很可笑 谢谢 从文档中: 此函数替换解析器用于从文件中读取行的函数。您可以将ArgumentParser子类化并添加此函数。或者,您可以通过使用此函数替换解析器的绑定方法来“模糊”它(没有self——请参阅注释) 其思想是从文件中提取一行,然后(作为生成器

我希望在python argparse中使用文件参数,文件中的行如下所示:

--contour_levels=-4 -2 0 2 4
或:

有没有一个简单的方法可以做到这一点?我知道我可以使用第一个级别,然后每行列出一个其他级别,但这看起来很可笑

谢谢

从文档中:

此函数替换解析器用于从文件中读取行的函数。您可以将
ArgumentParser
子类化并添加此函数。或者,您可以通过使用此函数替换解析器的绑定方法来“模糊”它(没有
self
——请参阅注释)

其思想是从文件中提取一行,然后(作为生成器)逐个返回字符串。如果这不起作用,它应该不难调整

p、 默认版本为,每行返回一个字符串

def convert_arg_line_to_args(self, arg_line):
    return [arg_line]

查看
ArgumentParser的代码。如果您对如何使用它有更多问题,请从\u文件中读取\u args\u。此函数从
sys.argv[1://code>获取字符串列表,并返回一个添加了文件内容的新字符串。

谢谢。我确实试过了,但一开始就很沮丧。对于像我这样盲目剪切和粘贴的人,有两个附录:上面的用法仅适用于覆盖。胡言乱语不应该有“自我”的论点。
def convert_arg_line_to_args(self, arg_line):
    for arg in arg_line.split():
        if not arg.strip():
            continue
        yield arg
parser = argparse.ArgumentParser(...)
parser.convert_arg_line_to_args = convert_arg_line_to_args
def convert_arg_line_to_args(self, arg_line):
    return [arg_line]