argparseを使用して位置引数とオプション引数の両方を受け取るスクリプトを作成しています。DougのチュートリアルとPythonDocsを確認しましたが、答えが見つかりません。
parser = argparse.ArgumentParser(description='script to run')
parser.add_argument('inputFile', nargs='?', type=argparse.FileType('rt'),
parser.add_argument('inputString', action='store', nargs='?')
parser.add_argument('-option1', metavar='percent', type=float, action='store')
parser.add_argument('-option2', metavar='outFile1', type=argparse.FileType('w'),
parser.add_argument('-option3', action='store', default='<10',
args = parser.parse_args()
# rest of script.... blah blah
ご覧のとおり、2つの位置引数と3つのオプションの引数が必要です。しかし、ターミナルで実行しようとすると、位置がチェックされません!python script.py inputfileを試してみると、正常に実行され、inputStringの値が見つからない場合、スクリプトの途中でエラーが出力されます。私が試してみると:python script.py xxx; 出力は次のとおりです。
usage script.py [-h] [-option1] [-option2] [-option3]
位置引数をチェックしない理由を誰かが説明できますか?