>  기사  >  백엔드 개발  >  Python argparse 사용: 명령줄 인수를 처리하는 방법

Python argparse 사용: 명령줄 인수를 처리하는 방법

WBOY
WBOY앞으로
2023-04-22 15:28:181143검색

    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()는 파싱된 매개변수를 가져오기 위해 pars_args()에 매개변수

    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를 입력하여 사용법을 표시하는 정보를 표시합니다. pytorch unet 훈련은 설명은 아래와 같으며 각 매개변수에 대한 정보와 사용법은 다음과 같습니다

    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 명령을 실행하고 get:

    --batch_size: 10

    5를 입력하세요. 입력 명령줄 문자를

    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 유형:

    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.choices매개 변수 선택

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

    명령을 실행하면 python python_argparse_test1.py -arch cnn

    이렇게 하면 오류가 보고됩니다

    python_argparse_test1.py: 오류: 인수 -arch: 잘못된 선택 : 'cnn' ('alexnet', 'vgg' 중 선택)

    위 내용은 Python argparse 사용: 명령줄 인수를 처리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제