2016-03-10 1 views
-2

Que signifie le fragment de code suivant? Je ne comprends pas le concept de sys.argv. J'ai entendu dire que cela avait quelque chose à voir avec les invites de la ligne de commande, mais mon vocabulaire n'est pas assez bon pour le comprendre. En outre, la sortie est étrange. Je ne comprends pas comment une liste est dressée ni comment les éléments entrent ou même d'où ils viennent et ce qu'ils signifient. Cela me déroute vraiment, alors aider à comprendre ce serait très apprécié. S'il vous plaît utiliser des termes de boisson pour que je puisse le comprendre.Que signifie ce code concernant sys.args?

import sys 

print 'Number of arguments:', len(sys.argv), 'arguments.' 
print 'Argument List:', str(sys.argv) 
+0

[Avez-vous lu le document?] (Https://docs.python.org/2/library/sys.html) –

Répondre

3

La plupart des programmes acceptent les arguments pour modifier leur comportement. par exemple.

grep some_string myfile.ext 

Cette commande (sur les systèmes unix) recherche 'some_string' dans myfile.ext et impressions correspondant à des lignes à la console.

Donc, la question est de savoir comment fonctionne grep (le programme qui est en cours d'exécution), savoir quoi chercher, ou quel fichier regarder? La réponse est évidente - Il est passé ces arguments via la ligne de commande. Vous avez le pouvoir de transmettre des arguments de la commandlint à vos programmes Python aussi:

python my_python_file.py argument1 argument2 

Dans ce cas, si my_python_file.py avait le contenu de votre question, sys.argv contiendrait ['my_python_file.py', 'argument1', 'argument2']

Et vous pouvez regarder dans sys.argv et voir 'argument1' là-bas et demandez à votre code de prendre certaines mesures en conséquence. Notez qu'il est assez rare d'analyser sys.argv à la main sauf s'il s'agit d'un vraiment cas simple. Normalement, vous utiliseriez quelque chose comme argparse pour analyser les arguments pour vous et vous rendre les informations analysées dans un format beaucoup plus facile à gérer.

2

sys.argv est une liste de string s contenant les arguments lorsque le script a été exécuté Python (à savoir >> python main.py arg1 arg2).

Notez que le premier argument sera toujours le nom de la commande. Le premier argument "réel" se trouve dans sys.argv[1] (en supposant qu'au moins un argument a été passé).

+0

Veuillez expliquer ces arguments. Que sont-ils? Juste les noms de fichiers et le type de fichier? Voilà à quoi ça ressemble. Je pense que je m'en vais. –

+0

Voir la réponse @mgilson –