コマンドラインから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 -クロップ 10 10 200 200 -サイズ変更 450 300
cmd.py test.jpg test2.jpg -サイズ変更 450 300 -クロップ 10 10 200 200
名前空間内の項目は常に同じ順序になっています (アルファベット順だと思います):
Namespace(crop=['10', '10', '200', '200'], resize=['450', '300'], rotate=None, source_file='test.jpg', target_file='test
2.jpg')
コマンドライン文字列の位置で並べ替える方法や、インデックスを取得する方法はありますか?