Python Argparse参数来自文件和字符串CLI参数

Python Argparse参数来自文件和字符串CLI参数,python,argparse,Python,Argparse,我想这样启动我的脚本: python3 main.py @params.conf 1 2 其中,params.conf是一个文件,1,2是字符串参数 我知道如何单独解析文件: argparser = ArgumentParser() argparser.add_argument('arg1', help='heeelp') ... args = argparser.parse_args() 但是如何解析以下参数呢?您只需添加更多的argparser.add_argument调用 像这样:

我想这样启动我的脚本:

python3 main.py @params.conf 1 2
其中,
params.conf
是一个文件,
1
2
是字符串参数

我知道如何单独解析文件:

argparser = ArgumentParser()
argparser.add_argument('arg1', help='heeelp') 
...
args = argparser.parse_args()

但是如何解析以下参数呢?

您只需添加更多的
argparser.add_argument
调用

像这样:

import argparse

parser = argparse.ArgumentParser()

parser.add_argument('arg1', type=str)
parser.add_argument('arg2', type=str)
parser.add_argument('arg3', type=str)

args = parser.parse_args() 

print(args)  # arguments are parsed

前缀为
@
的参数被视为其内容直接位于命令行中,每行一个参数。因此,如果
params.conf
的内容是

2
3
然后定义一个解析器,如

import argparse
p = argparse.ArgumentParser(fromfile_prefix_chars='@')
p.add_argument("a")
p.add_argument("b")
p.add_argument("c")
p.add_argument("d")
args = p.parse_args()
你把你的脚本称为

script.py 1 @params.conf 4
然后,您的参数
a
d
将分别设置为1到4。

解释如何解析位置参数,一般来说,您尝试过什么吗?怎么搞的?