为什么Python argparse中的fromfile-prefix-chars不起作用?

发布于 2021-01-29 14:56:51

我正在尝试在Python中使用argparse的fromfile-prefix-
chars功能从文件加载我的所有命令行参数,但是它一直抱怨我没有指定某些参数。

编码:

import argparse

def go():
   parser = argparse.ArgumentParser(fromfile_prefix_chars='@')
   parser.add_argument("--option1")
   parser.add_argument("--option2", type=int, required=True)
   args = parser.parse_args()

if __name__ == "__main__":
    go()

参数文件:

--option1 foo
--option2 1234

命令行和输出:

$ python testargparse.py @testargs
usage: testargparse.py [-h] [--option1 OPTION1] --option2 OPTION2
testargparse.py: error: argument --option2 is required

您可以看到我在文件中提供了必需的参数,但是argparse没有看到它。

关注者
0
被浏览
99
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    问题在于,在文件中指定每个参数时,每个参数与选项名称之间必须有一个’=’。从命令行运行时(空间或=可以),argparse在该格式上更加灵活,但是从文件运行时,它必须具有“
    =”。

    因此,一个有效的参数文件将是:

    --option1=foo
    --option2=1234
    

    还有其他需要注意的地方,请确保在行尾没有多余的空格,否则当argparse读取文件时,该空格将包含在该选项中。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看