10

引数を使用して動作を構成し、未定義の数のファイルを読み取るスクリプトを作成しています。次のコードを使用すると、1 つのファイルを読み取ることができます。別の引数を設定せずに、スクリプトが読み取るファイルの数を伝える方法はありますか?

parser = argparse.ArgumentParser()
parser.add_argument("FILE", help="File to store as Gist")
parser.add_argument("-p", "--private", action="store_true", help="Make Gist private")
4

2 に答える 2

25

はい、"FILE"行を次のように変更します。

parser.add_argument("FILE", help="File to store as Gist", nargs="+")

これにより、代わりにリスト内のすべての位置引数が収​​集されます。また、操作対象が 1 つも存在しない場合にもエラーが発生します。

nargsのドキュメントを確認してください

于 2012-11-04T15:37:05.750 に答える
6
import argparse

parser = argparse.ArgumentParser()

parser.add_argument('-FILE', action='append', dest='collection',
                    default=[],
                    help='Add repeated values to a list',
                    )

使用法:

python argparse_demo.py -FILE "file1.txt" -FILE "file2.txt" -FILE "file3.txt"

Python コードでは、変数でこれらにアクセスできますcollection。これは基本的にリストであり、デフォルトでは空のリストです。およびそれに指定する任意の数の引数を含むリスト。

于 2012-11-04T15:41:56.537 に答える