我有一个" main.py" python脚本。我想在命令行中运行脚本时为一个选项处理两个参数。
例如,我将在终端中编写以下命令:
python main.py --interval 2 4
我希望能够在我的程序中为这个特定选项(--interval)获取这两个参数(2和4)。
" main.py"程序:
from sys import argv
from getopt import getopt, GetoptError
try:
opts, args = getopt(argv[1:], "i:", ["interval="])
except GetoptError:
print("usage: main.py --interval <start value> <end value>")
exit(2)
for opt, arg in opts:
if opt in ("-i", "--interval"):
print("Start value: " + arg + ", end value: " + "?")
你可以在程序的最后一行看到,我在一个地方放了一个问号,我会得到第二个参数为&#34; - interval&#34;选项。
我想要的结果应该是:
Start value: 2, end value: 4
我知道这个简单的例子我可以使用argv [1]作为选项,argv [2]和argv [3]作为参数。但我想知道是否有可能用&#34; getopt&#34;库,如果是的话,是否是正确的方法。
答案 0 :(得分:1)
标准库中的argparse模块有一个如下例子:
import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
const=sum, default=max,
help='sum the integers (default: find the max)')
args = parser.parse_args()
print(args.accumulate(args.integers))
在您的示例中,您只需将nargs='+'
参数替换为nargs=2
即可。这样做会在我的终端上产生以下用法消息(传递-h
标志以获得使用):
usage: tmp.py [-h] [--sum] N N