两组参数 python

Two sets of arguments python

我喜欢 gdb 和 lldb 可以采用两组参数,一组用于 gdb/lldb 本身,一组用于目标应用程序。例如:

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

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

是的! 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')