私の要件は、タプルをコマンドライン引数として次のように渡すことです
_--data (1,2,3,4)
_
argparse
モジュールを使用しようとしましたが、このように渡すと、文字列'(1,2,3,4)'
として受け取ります。 _type=Tuple
_に_argparse.add_argument
_を指定して試しましたが、ここでは役に立ちません。
新しい型クラスを追加して、それを_add_argument
_の型引数に渡す必要がありますか?
更新
答えに基づいて_ast.literal_eval
_を試しました。それをありがとう。ただし、次のように結果にスペースが含まれます。
_(1,2,3,4)
<type 'str'>
(1, 2, 3, 4)
<type 'Tuple'>
_
nargs
引数のdata
をnargs="+"
(1つ以上を意味する)に設定し、int
と入力すると、コマンドラインで次のように引数を設定できます:
--data 1 2 3 4
args.data
は[1, 2, 3, 4]
のリストになります。
タプルが必要な場合は、次のことができます。
my_Tuple = Tuple(args.data)
すべてを一緒に入れて:
parser = argparse.ArgumentParser()
parser.add_argument('--data', nargs='+', type=int)
args = parser.parse_args()
my_Tuple = Tuple(args.data)