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

时间:2018-02-12 16:55:06

标签: python argparse

我想像这样启动我的脚本:

python3 main.py @params.conf 1 2

其中params.conf是文件而12是字符串参数。

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

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

但是如何解析以下参数?

2 个答案:

答案 0 :(得分:2)

前缀为@的参数被视为其内容直接位于命令行中,每行一个参数。因此,如果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

然后您的参数ad将分别设置为1到4。

答案 1 :(得分:0)

您只需添加更多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