Verwenden von Python argparse: Umgang mit Befehlszeilenargumenten

WBOY
Freigeben: 2023-04-22 15:28:18
nach vorne
1176 Leute haben es durchsucht

    1. Vorwort

    argparse ist ein Befehlszeilenparameter-Parsing-Paket für Python. Wenn der Code häufig Parameter ändern muss , Einfach zu verwenden, die Hauptverwendung besteht darin, die Parameter, die Sie ändern möchten, in die Befehlszeile einzugeben.

    2. Gängige Frameworks für die Verwendung von 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)
    Nach dem Login kopieren

    Wie oben ist get_parser() eine der in diesem Artikel vorgestellten Verwendungsmethoden. Diese Python-Datei heißt python_argparse_test1.py. wobei #🎜🎜 #

    parser = argparse.ArgumentParser(description="pytorch unet training") zum Erstellen eines Parserobjekts verwendet wird

    add_argument() zum Hinzufügen von Parametern verwendet wird

    args = parser In .parse_args() ruft parse_args() die analysierten Parameter ab

    1. Holen Sie sich die Parameterliste

    Wenn Python python_argparse_test1.py eingegeben wird Drucken Sie in der Befehlszeile die von args erhaltenen Parameter aus, um Folgendes zu erhalten:

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

    #🎜 🎜# stellt die von diesem Parameterparser analysierte Parameterliste dar.

    2. Hilfeinformationen abrufen

    Geben Sie python python_argparse_test1.py -h oder python python_argparse_test1.py --help ein, um Informationen anzuzeigen , wo die Verwendung seine Verwendung anzeigt, Pytorch Unet Training Für die Beschreibung beim Erstellen des Objekts finden Sie im Folgenden die Informationen und die Verwendung jedes Parameters

    Verwenden von Python argparse: Umgang mit Befehlszeilenargumenten3. Parameter in der Befehlszeile ändern

    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)
    Nach dem Login kopieren

    Befehlszeileneingabe: python python_argparse_test1.py --data_path Desktop --num_classer 4, das Ergebnis ist wie folgt:

    data_path: Desktop# 🎜🎜#

    num_classes: 4

    #🎜🎜 #Sie können sehen, dass die Parameter über die Befehlszeile geändert wurden

    4 Die Verwendung von '_' und "__. "

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

    Befehlszeileneingabe python python_argparse_test1.py -b 10 - -batch_size 20, dann wird ein Fehler gemeldet:

    #🎜 🎜#Das liegt daran, dass das System bei gleichzeitiger Existenz von „_“ und „__“ letzteren standardmäßig als Parameter verwendet. Name

    Ändern Sie den obigen Code in: Verwenden von Python argparse: Umgang mit Befehlszeilenargumenten

    if __name__ =='__main__':
    
        parser = get_parser()
    
        args = parser.parse_args()
    
        print("--batch_size: ",args.batch_size)
    Nach dem Login kopieren
    #🎜 🎜#Aber die Befehlszeile ist nicht betroffen. Führen Sie den Befehl python python_argparse_test1.py -b 10 weiter aus und erhalten Sie:

    #🎜🎜 #--batch_size: 10

    5 Die Verwendung vom Typ

    Typ erzwingt die Konvertierung der eingegebenen Befehlszeilenzeichen in den Typ vom Typ

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

    Befehlszeileneingabe: python python_argparse_test1.py --batch_size '10' erhält :

    --batch_size type:

    6.erforderlich: verwenden, um anzugeben, ob dieser Parameter bereitgestellt werden muss

    parser.add_argument("--num_classes", default=1, type=int, required=True)
    Nach dem Login kopieren
    # 🎜🎜#Wenn Sie den Befehl python python_argparse_test1.py

    eingeben, wird ein Fehler gemeldet, der darauf hinweist, dass der Parameter tatsächlich erforderlich ist Erforderlich: --num_classes

    7.choices Auswahlparameter

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

    Wenn Sie den Befehl ausführen: python python_argparse_test1.py -arch cnn

    Das wird Einen Fehler melden

    python_argparse_test1.py: Fehler: Argument -arch: ungültige Wahl: 'cnn' (wählen Sie aus 'alexnet', 'vgg')

    Das obige ist der detaillierte Inhalt vonVerwenden von Python argparse: Umgang mit Befehlszeilenargumenten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Verwandte Etiketten:
    Quelle:yisu.com
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage