Comment puis-je avoir un script Python qui a) peut accepter les entrées utilisateur et comment le faire b) lire des arguments s'il est exécuté à partir de la ligne de commande?
python
input
command-line-arguments
Teifion
la source
la source
argparse
au lieu deoptparse
.Réponses:
Pour lire les entrées utilisateur, vous pouvez essayer le
cmd
module pour créer facilement un mini-interpréteur de ligne de commande (avec des textes d'aide et la saisie semi-automatique) etraw_input
(input
pour Python 3+) pour lire une ligne de texte de l'utilisateur.Les entrées de ligne de commande sont entrées
sys.argv
. Essayez ceci dans votre script:Il existe deux modules pour analyser les options de ligne de commande:
(obsolète depuis Python 2.7, utilisezoptparse
argparse
plutôt) etgetopt
. Si vous voulez simplement entrer des fichiers dans votre script, voyez la puissance defileinput
.La référence de la bibliothèque Python est votre amie.
la source
raw_input
a été renomméinput
en Python 3.x - documentation iciOu pour Python 3:
la source
raw_input
, c'est une fonction intégrée.raw_input
n'est plus disponible dans Python 3.x. Mais araw_input
été renomméinput
, donc la même fonctionnalité existe.Documentation du changement
la source
import fileinput result=[] for line in fileinput.input(): result.append(line)
Le meilleur moyen de traiter les arguments de ligne de commande est le
argparse
module.Utilisez
raw_input()
pour obtenir une entrée utilisateur. Si vous importez,readline module
vos utilisateurs auront la modification et l'historique des lignes.la source
Attention à ne pas utiliser la
input
fonction, sauf si vous savez ce que vous faites. Contrairement àraw_input
,input
acceptera n'importe quelle expression python, donc c'est un peu commeeval
la source
Ce programme simple vous aide à comprendre comment alimenter les entrées utilisateur à partir de la ligne de commande et à afficher l'aide sur la transmission d'arguments non valides.
1) Pour trouver la racine carrée de 5
2) Passer un argument non valide autre que le nombre
la source
Utilisez 'raw_input' pour l'entrée depuis une console / un terminal.
si vous voulez juste un argument de ligne de commande comme un nom de fichier ou quelque chose par exemple
alors vous pouvez utiliser sys.argv ...
sys.argv est une liste où 0 est le nom du programme, donc dans l'exemple ci-dessus sys.argv [1] serait "nom_fichier.txt"
Si vous voulez avoir des options complètes sur la ligne de commande, utilisez le module optparse.
Pev
la source
Si vous exécutez Python <2.7, vous avez besoin d’ optparse qui, comme l'explique le document, créera une interface avec les arguments de ligne de commande qui sont appelés lorsque votre application est exécutée.
Cependant, en Python ≥2.7, optparse a été déconseillé et a été remplacé par l' argparse comme indiqué ci-dessus. Un exemple rapide de la documentation ...
la source
À partir de Python
3.22.7, il existe désormais argparse pour le traitement des arguments de ligne de commande.la source
S'il s'agit d'une version 3.x, utilisez simplement:
Par exemple, vous souhaitez saisir 8:
x sera égal à 8 mais ce sera une chaîne sauf si vous le définissez autrement.
Vous pouvez donc utiliser la commande convert, comme:
la source
En Python 2:
En Python 3:
la source
la source