私は次の引数定義でpythonargparseを使用しています:
parser.add_argument('path', nargs=1, help='File path to process')
しかし、wildcard
引数を指定してコマンドを入力すると、argparse
すべてのファイルパスがグロブされ、エラーで終了します。
argparse
ファイルをグロブしないようにするにはどうすればよいですか?
シェルは、ワイルドカード引数argparse
を表示する前に、ワイルドカード引数を拡張しています。シェルがワイルドカード引数を展開しないように、ワイルドカード引数を引用符で囲みます。
後でglob.globを使用してワイルドカード拡張を実行できます。
ファイルをグロブしないようにargparseを取得するにはどうすればよいですか?
あなたはそうしない。
シェルにグロブを停止させます。
でも。ちょっと考えてみましょう。
あなたはあなたのコードでこれを言っています
parser.add_argument('path', nargs=1, help='File path to process')
ただし、実際には、実行時にワイルドカードを提供しています。
それらの2つのうちの1つは間違っています。実行時にワイルドカードの提供を停止するか、argparseを修正して複数のファイル名を許可します。
グロブは、argparseモジュールではなく、シェルによって実行されます。最初に印刷sys.argv
すると、argparseが入力として取得するものがわかります。