ファイルに対していくつかの作業を行うスクリプトがあるとしましょう。コマンドラインでこのファイルの名前を使用しますが、指定されていない場合は、デフォルトで既知のファイル名(content.txt
たとえば)になります。Pythonargparse
では、次を使用します。
parser = argparse.ArgumentParser(description='my illustrative example')
parser.add_argument('--content', metavar='file',
default='content.txt', type=argparse.FileType('r'),
help='file to process (defaults to content.txt)')
args = parser.parse_args()
# do some work on args.content, which is a file-like object
これはうまくいきます。唯一の問題は、を実行するpython myscript --help
とArgumentError
、ファイルがそこにない場合(これは理にかなっていると思います)が表示され、ヘルプテキストが表示されないことです。ユーザーが必要な場合は、ファイルを開こうとしないほうがいい--help
です。これを行う方法はありますか?引数を文字列にして、後で自分でファイルを開くことができることはわかっています(そして、私はそれを行っています)が、それをargparse
処理しておくと便利です。