我想知道如何获取从命令行传递给 argparse 的可选参数的顺序
我有图像处理类,它能够对图像应用不同的操作——比如旋转、裁剪、调整大小......
应用这些操作的顺序通常很重要(例如:您想在调整图像大小之前裁剪图像)
我有这个代码:
parser = argparse.ArgumentParser(description='Image processing arguments')
parser.add_argument('source_file', help='source file')
parser.add_argument('target_file', help='target file')
parser.add_argument('-resize', nargs=2, help='resize image', metavar=('WIDTH', 'HEIGHT'))
parser.add_argument('-rotate', nargs=1, help='rotate image', metavar='ANGLE')
parser.add_argument('-crop', nargs=4, help='crop image', metavar=('START_X','START_Y','WIDTH','HEIGHT'))
ar = parser.parse_args()
print ar
但是 - 无论我以哪种顺序将参数传递给脚本:
cmd.py test.jpg test2.jpg -crop 10 10 200 200 -resize 450 300
cmd.py test.jpg test2.jpg -resize 450 300 -crop 10 10 200 200
在命名空间中的项目总是按相同的顺序排列(我想是按字母顺序排列的):
Namespace(crop=['10', '10', '200', '200'], resize=['450', '300'], rotate=None, source_file='test.jpg', target_file='test
2.jpg')
有没有办法按命令行字符串中的位置对它们进行排序或获取它们的索引?