système.argv
Essentiellement, sys.argv () est une liste de toutes les entrées de ligne de commande. Lorsque le script est exécuté, vous pouvez alimenter sa entrée de l'utilisateur de différentes manières, et une telle manière est via la ligne de commande. Dans ce premier cas, supposons que nous avons un simple script appelé Main.py.
Imprimer («Hello World»)Lors de l'exécution du script, nous allons ajouter quelques arguments de ligne de commande en plus du nom du script. Si nous devions exécuter le script, nous obtiendrions ce qui suit:
$ python3 Main.py qu'est-ce que tu fais?Vous remarquez ici que les arguments de ligne de commande n'ont pas interféré avec le script lui-même.
Alors, maintenant, modifions un peu le script. Alors, supposons que maintenant nous avons un script appelé Main.py avec le contenu suivant:
importer sysSi nous devions exécuter le script, nous obtiendrions ce qui suit:
$ python3 Main.pyComme vous pouvez le voir, nous obtenons une liste avec un élément car nous ne l'avons fourni qu'un seul élément, le nom du script. Supposons maintenant que nous lui fournissons des arguments d'entrée de ligne de commande légèrement différents.
importer sysSi nous devions exécuter le script, nous obtiendrions ce qui suit:
$ python3 Main.py bonjour mondeMaintenant, ce qui se passe, c'est qu'il récupère tout ce que nous avons fourni via la ligne de commande ou tous les arguments de ligne de commande fournis par l'utilisateur. Dans mon cas, j'ai ajouté «Hello World» après le nom du script, et en tant que tel, il l'a récupéré sur la liste.
système.argv [0]
Système.Argv [0] est le premier argument de la liste. Dans tous les cas, le premier argument est toujours le nom du script.
importer sysLors de l'exécution du script, nous tapions ce qui suit:
$ python3 Main.pysystème.argv [n]
Alternativement, vous souhaiterez peut-être récupérer un argument de ligne de commande spécifique. Par exemple, vous souhaiterez peut-être récupérer les entrées de l'utilisateur via des arguments de ligne de commande lors de la rédaction d'un programme Python. Dans ce scénario, nous récupérerons les trois premiers arguments de ligne de commande.
importer sysLors de l'exécution du script, nous tapions ce qui suit par exemple:
$ python3 Main.Py Trevor Travis TimIci, sys.Argv [1] est le deuxième argument de ligne de commande, tandis que sys.Argv [2] est le troisième argument de la ligne de commande et sys.Argv [3] est le quatrième argument de la ligne de commande. Il en est ainsi parce que bien que l'index commence à 0 et sys.argv [0] est le nom du script.
Et si l'utilisateur devait saisir le nombre de normes et nous ne savions pas combien d'entrées il y avait? Supposons que le script suivant a été écrit:
importer sysLors de l'exécution du script, nous tapions ce qui suit par exemple:
$ python3 Main.py Bonjour Trevor Travis et TimIci, sys.Argv [1:] signifie que toutes les valeurs de SYS.Argv [1] sont utilisés jusqu'à la fin de la liste. Dans ce cas, nous pouvons ajouter autant d'arguments de ligne de commande que nous le souhaitons.
Cordes
Veuillez noter que toutes les valeurs capturées par le système variable.Argv sont des cordes. Supposons donc que nous voulions ajouter trois nombres que l'utilisateur entre.
importer sysSi nous devions exécuter le script, nous obtiendrions ce qui suit:
$ python3 main2.py 3 4 5Ce que nous obtenons, c'est une énergie. En effet. Afin de corriger cela, nous devions convertir les cordes en entiers:
importer sysSi nous devions exécuter le script, nous obtiendrions ce qui suit:
$ python3 main2.py 3 4 5Nous avons ajouté Int (sys.arg [n]) s'est assuré que nous convertissions la chaîne en un entier.
Système.erreurs argv
L'une des erreurs les plus courantes qui sont lancées (lorsque nous n'utilisons pas SYS.Argv [1:] mais spécifiez plutôt la nth de valeur en utilisant SYS.argv [n]) est celui d'une indexerror (index de liste hors de portée). Ce que cette erreur signifie, c'est que les arguments de ligne de commande n'ont pas été spécifiés, et afin d'éviter cette erreur, nous devons prendre quelques étapes de précaution:
importer sysLors de l'exécution du script, nous tapions ce qui suit par exemple:
$ python3 Main.Py Travis Trevor TimAfin d'éviter l'erreur, nous devons ajuster la longueur des arguments de ligne de commande. Dans l'exemple précédent, nous avons trois noms et un nom de script, ce qui signifie qu'il y a un total de 4 valeurs. Ainsi, nous disons que si la longueur est supérieure à 4 ou moins de 4, demandez à l'utilisateur de saisir trois noms; sinon, imprimez les trois noms.
Le module sys est très important car il permet une interaction avec l'interpréteur Python. En particulier, le système variable.Argv est une liste qui contient tous les arguments de ligne de commande entrés des utilisateurs. Système.Argv [0] définit le nom du script dans tous les cas. Bien que sys.argv () est très couramment utilisé pour rassembler les arguments de ligne de commande, une autre manière encore meilleure de rassembler les arguments de ligne de commande est en utilisant Argparse. Mais c'est une histoire pour un autre jour!