6

私は次の引数定義でpythonargparseを使用しています:

parser.add_argument('path', nargs=1, help='File path to process')

しかし、wildcard引数を指定してコマンドを入力すると、argparseすべてのファイルパスがグロブされ、エラーで終了します。

argparseファイルをグロブしないようにするにはどうすればよいですか?

4

3 に答える 3

10

シェルは、ワイルドカード引数argparseを表示する前に、ワイルドカード引数を拡張しています。シェルがワイルドカード引数を展開しないように、ワイルドカード引数を引用符で囲みます。

後でglob.globを使用してワイルドカード拡張を実行できます。

于 2011-09-09T20:00:23.150 に答える
8

ファイルをグロブしないようにargparseを取得するにはどうすればよいですか?

あなたはそうしない。

シェルにグロブを停止させます。

でも。ちょっと考えてみましょう。

あなたはあなたのコードでこれを言っています

parser.add_argument('path', nargs=1, help='File path to process')

ただし、実際には、実行時にワイルドカードを提供しています。

それらの2つのうちの1つは間違っています。実行時にワイルドカードの提供を停止するか、argparseを修正して複数のファイル名を許可します。

于 2011-09-09T20:01:52.900 に答える
4

グロブは、argparseモジュールではなく、シェルによって実行されます。最初に印刷sys.argvすると、argparseが入力として取得するものがわかります。

于 2011-09-09T19:59:43.607 に答える