小编Ska*_*ach的帖子

python + argparse - 如何从命令行获取可选参数的顺序

我想知道如何获取从命令行传递给 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
Run Code Online (Sandbox Code Playgroud)

但是 - 无论我以何种顺序将参数传递给脚本:

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')
Run Code Online (Sandbox Code Playgroud)

有没有办法按命令行字符串中的位置对它们进行排序或获取它们的索引?

python argparse

5
推荐指数
2
解决办法
3461
查看次数

标签 统计

argparse ×1

python ×1