2012-11-04 7 views
8

引数を使用して動作を構成し、定義されていない数のファイルを読み込むスクリプトを作成しています。次のコードを使用すると、1つのファイルを読むことができます。別の引数を設定しなくても、スクリプトで読み取るファイルの数を指定することなく、これを達成する方法はありますか?argparse:定義されていない数の引数を取得する

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") 

答えて

22

はい、あなたに"FILE"行を変更します。これは、代わりに、リスト内のすべての位置引数を収集します

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

。また、少なくとも1つが動作していない場合、エラーを生成します。

nargs documentation

+0

これは、ありがとうございます。私はなぜそれがargparseチュートリアルではないのだろうかと思います。 – braindump

+1

http://docs.python.org/2/library/argparse.html#nargs – user2753523

+0

これは栄光です – pele88

5
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変数、、では空リストでこれらにアクセスすることができますデフォルト;あなたが提供する任意の数の引数を含むリスト。

関連する問題