ホームページ  >  記事  >  バックエンド開発  >  Python で argparse を使用してリストをコマンドライン引数として処理するにはどうすればよいですか?

Python で argparse を使用してリストをコマンドライン引数として処理するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-27 17:57:30913ブラウズ

How to Handle Lists as Command-Line Arguments with argparse in Python?

argparse を使用したコマンドライン引数としてのリストの処理

Python では、argparse モジュールによりコマンドライン引数の解析が容易になります。引数としてリストを扱う場合、適切なオプションを理解することが重要です。

nargs

1 つの方法は、args を利用することです。これは、オブジェクトに対して受け入れられる引数の数を指定します。オプション。デフォルトでは、nargs=1 は単一の引数を受け入れます。ただし、nargs=' ' または nargs='*' を使用すると、複数の引数を使用できます。

<code class="python">parser.add_argument('-l', '--list', nargs='+', help='Set flag')</code>

action='append'

別の代替方法は、action='append '。このアプローチでは、検出された各引数を 1 つの引数にまとめるのではなく、リストに追加します。

<code class="python">parser.add_argument('-l', '--list', action='append', help='Set flag')</code>

type=list を避ける

対照的に、type=list を使用します。一般に、argparse を使用することはお勧めできません。各引数をリストとして解釈し、リストのリストを作成します。

デモ

提供されたコードは、次のオプションの使用法を示しています。

<code class="python">import argparse

parser = argparse.ArgumentParser()

# Demonstration with nargs
parser.add_argument('--nargs', nargs='+')

# Demonstration with action='append'
parser.add_argument('--append-action', action='append')

for _, value in parser.parse_args()._get_kwargs():
    if value is not None:
        print(value)</code>

出力:

スクリプトが python arg.py --nargs 1234 2345 3456 4567 で呼び出されると仮定すると、nargs を使用した出力は次のようになります:

['1234', '2345', '3456', '4567']

あるいは、python arg.py --append-action 1234 --append-action 2345 --append-action 3456 --append-action 4567 を使用してスクリプトを呼び出すと、次の結果が生成されます:

['1234', '2345', '3456', '4567']

ガイドライン

  • 簡単なユーザー操作の場合は、nargs を検討してください。
  • Action='append' は、引数が位置引数と混合できる場合、または引数の正確な数が必要な場合に推奨されます。
  • 望ましくないリストのリスト構造が生成されるため、type=list の使用は避けてください。

以上がPython で argparse を使用してリストをコマンドライン引数として処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。