ホームページ >バックエンド開発 >Python チュートリアル >Python argparse の使用: コマンド ライン引数の処理方法

Python argparse の使用: コマンド ライン引数の処理方法

WBOY
WBOY転載
2023-04-22 15:28:181217ブラウズ

    1. はじめに

    argparse は Python 用のコマンド ライン パラメータ解析パッケージで、コードでパラメータを頻繁に変更する必要がある場合に使用すると便利です。主な使用法は、コマンドラインで変更したいパラメータを入力することです。

    2. argparse を使用するための一般的なフレームワーク

    import argparse
    
    def get_parser():
    
        # argparse.ArgumentParser生成argparse对象 description为描述信息,当在命令行输入需要显示帮助信息时,会显示
    
        parser = argparse.ArgumentParser(description="pytorch unet training")
    
        # 路径参数设置 help为参数的帮助信息
    
        parser.add_argument("--data_path", default="./", help="DRIVE root")
    
        # 预测类别数量 type如果不指定需要输入的是str类型
    
        parser.add_argument("--num_classes", default=1, type=int)
    
        # 指定设备使用
    
        parser.add_argument("--device", default="cuda", help="training device")
    
        # 指定batch size大小 "-b", "--batch_size"表示两个都可以在命令行使用
    
        parser.add_argument("-b", "--batch_size", default=4, type=int)
    
        return parser
    
    if __name__ =='__main__':
    
        parser = get_parser()
    
        args = parser.parse_args()
    
        print(args)

    上で述べたように、get_parser() はこの記事で紹介されている使用方法の一部です。この Python ファイルは python_argparse_test1.py と呼ばれます。

    ##parser = argparse.ArgumentParser(description="pytorch unet training") はパーサー オブジェクトの作成に使用されます

    add_argument() はパラメーターの追加に使用されます

    args = parse_args( ) parser.parse_args() で解析パラメーターを取得します

    1. パラメーター リストを取得します

    コマンド ラインに python python_argparse_test1.py を入力すると、args によって取得されたパラメーターを出力して次を取得します。

    Namespace(batch_size=4, data_path ='./', device='cuda', num_classes=1)

    このパラメータ パーサーによって解析されたパラメータ リストを示します

    2. ヘルプ情報を取得します。

    「python python_argparse_test1.py -h」または「python python_argparse_test1.py --help --help」と入力すると、情報が表示されます。「usage」はその使用方法を示します。「pytorch unet training」はオブジェクト作成時の説明です。以下は各パラメータの情報と使用法

    Python argparse の使用: コマンド ライン引数の処理方法

    3. コマンドライン変更パラメータ

    import argparse
    
    def get_parser():
    
        # argparse.ArgumentParser生成argparse对象 description为描述信息,当在命令行输入需要显示帮助信息时,会显示
    
        parser = argparse.ArgumentParser(description="pytorch unet training")
    
        # 路径参数设置 help为参数的帮助信息 default为默认参数
    
        parser.add_argument("--data_path", default="./", help="DRIVE root")
    
        # 预测类别数量 type如果不指定需要输入的是str类型
    
        parser.add_argument("--num_classes", default=1, type=int)
    
        # 指定设备使用
    
        parser.add_argument("--device", default="cuda", help="training device")
    
        # 指定batch size大小 "-b", "--batch_size"表示两个都可以在命令行使用
    
        parser.add_argument("-b", "--batch_size", default=4, type=int)
    
        return parser
    
    if __name__ =='__main__':
    
        parser = get_parser()
    
        args = parser.parse_args()
    
        print("data_path: ",args.data_path)
    
        print("num_classes: ", args.num_classes)

    コマンドライン入力: python python_argparse_test1.py --data_path Desktop --num_classer 4結果は次のようになります:

    data_path: Desktop

    num_classes: 4

    コマンド ラインを通じてパラメータが変更されたことがわかります

    4. 「_」と「__」の使用

    if __name__ =='__main__':
    
        parser = get_parser()
    
        args = parser.parse_args()
    
        print("-b: ",args.b)
    
        print("--batch_size: ", args.batch_size)

    コマンド ラインに python python_argparse_test1.py -b 10 --batch_size 20 と入力すると、エラーが報告されます:

    Python argparse の使用: コマンド ライン引数の処理方法

    これは、'_' と '__' が同時に存在する場合、システムのデフォルトのパラメータ名

    が使用されるためです。上記のコードを次のように変更します:

    if __name__ =='__main__':
    
        parser = get_parser()
    
        args = parser.parse_args()
    
        print("--batch_size: ",args.batch_size)

    ただし、コマンド ラインは影響を受けません。引き続きコマンド python python_argparse_test1.py -b 10 を実行して、

    --batch_size: 10

    5 を取得します。usage

    と入力します。

    type は、入力されたコマンド ライン文字を type に強制的に変換します

    if __name__ =='__main__':
    
        parser = get_parser()
    
        args = parser.parse_args()
    
        print("--batch_size type: ",type(args.batch_size))

    コマンド ライン入力: python python_argparse_test1 .py --batch_size '10' 取得:

    --batch_size type :

    6.required: このパラメータを指定する必要があるかどうかを示すために使用されます

    parser.add_argument("--num_classes", default=1, type=int, required=True)

    コマンド python python_argparse_test1.py

    ## を入力した場合#これにより、実際に必要なパラメータの入力を求めるエラーが報告されます

    python_argparse_test1.py: エラー: 次の引数が必要です: --num_classes

    7.choicesSelect パラメータ

    parser.add_argument('-arch', required=True, choices=['alexnet', 'vgg'])

    コマンドを実行すると: python python_argparse_test1.py -arch cnn

    これはエラーを報告します

    python_argparse_test1.py: エラー: 引数 - アーチ: 無効な選択肢: 'cnn' (次から選択してください) 'alexnet'、'vgg')

    以上がPython argparse の使用: コマンド ライン引数の処理方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。