Maison > Article > développement back-end > Utilisation de Python argparse : comment gérer les arguments de ligne de commande
argparse est un package d'analyse de paramètres de ligne de commande pour Python. Il est pratique à utiliser lorsque le code doit modifier fréquemment les paramètres. L'utilisation principale est de saisir les paramètres que vous souhaitez modifier sur la commande. doubler.
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)
Comme mentionné ci-dessus, get_parser() fait partie des méthodes d'utilisation présentées dans cet article. Le nom de ce fichier python est python_argparse_test1.py, où
parser = argparse. ArgumentParser(description="pytorch unet training" ) est utilisé pour créer un objet analyseur
add_argument() est utilisé pour ajouter des paramètres
args = parser.parse_args() dans parse_args() pour obtenir les paramètres analysés
Lorsque la ligne de commande entre python python_argparse_test1.py , imprimez les paramètres obtenus par args et obtenez :
Namespace(batch_size=4, data_path='./', device='cuda', num_classes=1)
indique la liste des paramètres analysés par cet analyseur de paramètres
Entrez python python_argparse_test1.py -h ou python python_argparse_test1.py --help pour afficher les informations, où l'utilisation montre son utilisation, la formation pytorch unet est la description lors de la création de l'objet, et ci-dessous se trouvent les informations et l'utilisation de chaque paramètre
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)
Entrée de la ligne de commande : python python_argparse_test1.py --data_path Desktop --num_classer 4, les résultats sont comme suit :
data_path : Desktop
num_classes : 4
Vous pouvez voir à travers La ligne de commande a en effet modifié les paramètres
if __name__ =='__main__': parser = get_parser() args = parser.parse_args() print("-b: ",args.b) print("--batch_size: ", args.batch_size)
Les entrées de ligne de commande python python_argparse_test1. .py -b 10 --batch_size 20, et une erreur sera signalée :
En effet, lorsque '_' et '__' existent en même temps, le système utilise par défaut ce dernier comme nom de paramètre
Changez le code ci-dessus en :
if __name__ =='__main__': parser = get_parser() args = parser.parse_args() print("--batch_size: ",args.batch_size)
Mais la ligne de commande n'est pas affectée, continuez à exécuter la commande python python_argparse_test1.py -b 10 et obtenez :
--batch_size : 10
type will. forcer la conversion des caractères de ligne de commande d'entrée en type de type
if __name__ =='__main__': parser = get_parser() args = parser.parse_args() print("--batch_size type: ",type(args.batch_size))
Entrée de ligne de commande : python python_argparse_test1.py --batch_size '10' obtient :
--batch_size type :
parser.add_argument("--num_classes", default=1, type=int, required=True)
Si vous entrez la commande python python_argparse_test1.py
Cela signalera une erreur indiquant que les paramètres sont effectivement requis
python_argparse_test1.py : erreur : ce qui suit les arguments sont requis : --num_classes
parser.add_argument('-arch', required=True, choices=['alexnet', 'vgg'])
Si vous exécutez la commande : python python_argparse_test1.py -arch cnn
Cela signalera une erreur
python_argparse_test1.py : erreur : argument -arch : choix invalide : 'cnn' (choisissez parmi 'alexnet', 'vgg')
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!