两组参数python

时间:2015-12-08 23:54:36

标签: python bash arguments command-line-interface

我喜欢gdb和lldb如何获取两组参数,一组用于gdb / lldb本身,另一组用于目标应用程序。例如:

lldb /bin/ls -- -al -foo=bar

在双击“ - ”的左侧,您可以放置​​您的lldb参数,在右侧,您可以放置​​目标参数。有没有办法在我的Python脚本中读取这样的两组参数?

1 个答案:

答案 0 :(得分:1)

是的! ArgumentParser.parse_args()可以选择接受参数列表,其格式与您在sys.argv中看到的格式类似。

import sys
import argparse

first_parser = argparse.ArgumentParser()
first_parser.add_argument('arg1')

second_parser = argparse.ArgumentParser()
second_parser.add_argument('arg2')

first_args = []
second_args = []
double_dashed = False
for arg in sys.argv[1:]:
    if arg == '--':
        double_dashed = True
    elif not double_dashed:
        first_args.append(arg)
    else:
        second_args.append(arg)
print(first_parser.parse_args(first_args))
print(second_parser.parse_args(second_args))

打印出来:

$ ./example.py one -- two
Namespace(arg1='one')
Namespace(arg2='two')