Entrée utilisateur et arguments de ligne de commande

Comment puis-je avoir un script Python qui a) peut accepter l'entrée de l'utilisateur et comment puis-je faire en sorte qu'il b) lise les arguments s'il est exécuté à partir de la ligne de commande ?

Solution

Pour lire les entrées de l'utilisateur, vous pouvez essayer [le module cmd][1] pour créer facilement un mini interpréteur de ligne de commande (avec textes d'aide et autocomplétion) et [raw_input][2] ([input][3] pour Python 3+) pour lire une ligne de texte de l'utilisateur.

text = raw_input("prompt")  # Python 2
text = input("prompt")  # Python 3

Les entrées de la ligne de commande sont dans sys.argv. Essayez ceci dans votre script :

import sys
print (sys.argv)

Il y a deux modules pour analyser les options de la ligne de commande : [optparse][4] (déprécié depuis Python 2.7, utilisez plutôt [argparse][5]) et [getopt][6]. Si vous voulez simplement entrer des fichiers dans votre script, admirez la puissance de [fileinput][7].

La [référence de la bibliothèque Python][8] est votre amie.

[1] : https://docs.python.org/dev/library/cmd.html [2] : https://docs.python.org/2/library/functions.html#raw_input [3] : https://docs.python.org/dev/library/functions.html#input [4] : https://docs.python.org/dev/library/optparse.html [5] : https://docs.python.org/dev/library/argparse.html [6] : https://docs.python.org/dev/library/getopt.html [7] : https://docs.python.org/dev/library/fileinput.html [8] : https://docs.python.org/dev/library/

Commentaires (3)
var = raw_input("Please enter something: ")
print "you entered", var

Ou pour Python 3 :

var = input("Please enter something: ")
print("You entered: " + var)
Commentaires (2)

La meilleure façon de traiter les arguments de la ligne de commande est le module [argparse][1].

Utilisez raw_input() pour obtenir l'entrée de l'utilisateur. Si vous importez le module [readline][2], vos utilisateurs pourront éditer les lignes et avoir un historique.

[1] : https://docs.python.org/library/argparse.html [2] : https://docs.python.org/library/readline.html

Commentaires (2)