来自文件和字符串 CLI 参数的 Argparse 参数
Argparse arguments from file and string CLI arguments both
我想像这样启动我的脚本:
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。
我想像这样启动我的脚本:
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。