Rumah > pembangunan bahagian belakang > Tutorial Python > Menggunakan Python argparse: Cara mengendalikan hujah baris arahan

Menggunakan Python argparse: Cara mengendalikan hujah baris arahan

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2023-04-22 15:28:18
ke hadapan
1245 orang telah melayarinya

    1. Pengenalan

    argparse ialah pakej penghuraian parameter baris perintah untuk Python penggunaan utama adalah dalam Masukkan parameter yang anda ingin ubah suai pada baris arahan.

    2. Rangka kerja biasa untuk penggunaan 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)
    Salin selepas log masuk

    Seperti yang dinyatakan di atas, get_parser() ialah beberapa kaedah penggunaan yang diperkenalkan dalam artikel ini Fail python ini dipanggil python_argparse_test1.py, di mana

    parser = argparse.ArgumentParser(description="pytorch unet training") digunakan untuk mencipta objek parser

    add_argument() digunakan untuk menambah parameter

    args = parse_args () dalam parser.parse_args() Dapatkan parameter yang dihuraikan

    1 Dapatkan senarai parameter

    Apabila python python_argparse_test1.py dimasukkan pada baris arahan, cetak parameter yang diperolehi oleh args dan dapatkan. :

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

    Menunjukkan senarai parameter yang dihuraikan oleh penghurai parameter ini

    2. Dapatkan maklumat bantuan

    Masukkan python python_argparse_test1.py -h atau python python_argparse_test1.py --help untuk memaparkan maklumat, penggunaan menunjukkan penggunaannya, latihan pytorch unet ialah penerangan semasa mencipta objek dan di bawah ialah maklumat dan penggunaan setiap parameter

    Menggunakan Python argparse: Cara mengendalikan hujah baris arahan

    3 Ubah suai parameter pada baris arahan

    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)
    Salin selepas log masuk

    Input baris arahan: python python_argparse_test1.py -- data_path Desktop --num_classer 4, hasilnya adalah seperti berikut:

    data_path: Desktop

    num_classes: 4

    Anda boleh melihat bahawa parameter telah diubah suai melalui baris arahan

    4. Penggunaan '_' dan "__"

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

    Masukkan python python_argparse_test1.py -b 10 --batch_size 20 pada baris arahan, dan ralat akan dilaporkan :

    Menggunakan Python argparse: Cara mengendalikan hujah baris arahan

    Ini kerana apabila '_' dan ' Apabila __' wujud pada masa yang sama, sistem lalai kepada nama parameter

    kod di atas kepada:

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

    tetapi baris arahan tidak akan terjejas Teruskan melaksanakan perintah python python_argparse_test1.py -b 10 Dapatkan:

    --batch_size: 10

    5. Penggunaan jenis

    jenis akan memaksa aksara baris arahan input ke dalam jenis jenis

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

    Input baris arahan: python python_argparse_test1.py --batch_size '10' mendapat:

    --batch_size type:

    6.required: use Untuk menunjukkan sama ada parameter ini perlu disediakan

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

    Jika anda memasukkan perintah python python_argparse_test1.py

    ini akan melaporkan ralat yang menunjukkan bahawa parameter memang diperlukan

    python_argparse_test1.py: ralat: argumen berikut diperlukan: --num_classes

    7.parameter pemilihan pilihan

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

    Jika anda menjalankan arahan: python python_argparse_test1.py -arch cnn

    Ini akan melaporkan ralat

    python_argparse_test1. py: ralat: hujah -arch: pilihan tidak sah: 'cnn' (pilih daripada 'alexnet', 'vgg')

    Atas ialah kandungan terperinci Menggunakan Python argparse: Cara mengendalikan hujah baris arahan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Label berkaitan:
    sumber:yisu.com
    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan