4

であるオプションから別のオプションを参照するにはどうすればよいargparseですか?

たとえば、既存のファイルを変更するプログラムがあります。出力ファイルの名前を指定するオプションの引数が必要です。これはデフォルトで入力と同じになります (つまり、プログラムはデフォルトで入力ファイルを上書きします)。これまでに私が考えたことは次のとおりです。

parser.add_argument('input', )
parser.add_argument('output',
        default = sys.argv()[1],
        nargs = '?',
        )

しかし、それはかなり面倒で、最適な解決策とは思えません。

4

1 に答える 1

2

outputの後に値を設定するだけparse_args()です。たとえば、次のようになります。

args = parser.parse_args()
if args.output is None:
    args.output = args.input

argparse 内でデフォルトを設定する唯一の利点 (私が考えることができる) は、ヘルプ表示で使用できることです。しかし、ユーザーが要求している場合、-h彼はおそらくinput議論をしていません。効果へのヘルプライン: 「出力のデフォルトは入力と同じです」の方が良いでしょう

と の両方のセットのカスタムactionを作成する場合があります。しかし、それは注意が必要です。また、投稿ロジックに勝る利点はありません。inputargs.inputargs.outputparse_args

于 2013-08-26T21:40:35.470 に答える