两组参数 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')
我喜欢 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')