Rumah > Artikel > pembangunan bahagian belakang > Menggunakan Python argparse: Cara mengendalikan hujah baris arahan
argparse ialah pakej penghuraian parameter baris perintah untuk Python penggunaan utama adalah dalam Masukkan parameter yang anda ingin ubah suai pada baris arahan.
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)
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
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
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
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)
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
if __name__ =='__main__': parser = get_parser() args = parser.parse_args() print("-b: ",args.b) print("--batch_size: ", args.batch_size)
Masukkan python python_argparse_test1.py -b 10 --batch_size 20 pada baris arahan, dan ralat akan dilaporkan :
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)
tetapi baris arahan tidak akan terjejas Teruskan melaksanakan perintah python python_argparse_test1.py -b 10 Dapatkan:
--batch_size: 10
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))
Input baris arahan: python python_argparse_test1.py --batch_size '10' mendapat:
--batch_size type:
parser.add_argument("--num_classes", default=1, type=int, required=True)
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
parser.add_argument('-arch', required=True, choices=['alexnet', 'vgg'])
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!