Montrer la valeur par défaut pour l'édition sur Python d'entrée possible?
Est-il possible pour python à accepter entrée comme ceci:
Dossier nom: Télécharger
Mais au lieu de l'utilisateur de taper "Télécharger", elle est déjà là en tant que valeur initiale. Si l'utilisateur veut modifier comme "Téléchargements" tout ce qu'il a à faire est d'ajouter un " s " et appuyez sur entrée.
L'utilisation normale de commande d'entrée:
folder=input('Folder name: ')
tout ce que je peux obtenir une invite de commandes vide:
Nom du dossier:
Est-il une manière simple de faire ce que je suis absent?
Vous devez vous connecter pour publier un commentaire.
Les fonctions de bibliothèque standard
input()
etraw_input()
n'ont pas cette fonctionnalité. Si vous utilisez Linux, vous pouvez utiliser lereadline
module pour définir une fonction d'entrée qui utilise un préremplissage de la valeur et de la ligne avancée de l'édition:Je suis en supposant que vous voulez dire à partir de la ligne de commande. Je n'ai jamais vu des valeurs initiales pour les invites de la ligne de commande, ils sont généralement de la forme:
qui dans le code est tout simplement:
Sinon, vous pouvez essayer de faire quelque chose en utilisant l' les malédictions module en Python.
Cela fonctionne dans windows.
print name
est un don mort 😉 Pour Python 3 solution pour Windows, voir ma réponse à une question similaire, avec un peu modifié le code: stackoverflow.com/a/32156249/4973698Je pense que le meilleur (le plus simple et le plus portable), la solution est une combinaison de @rlotun et @Stephen réponses:
Je tiens à vous suggérons d'utiliser le presse-papiers afin de résoudre ce problème. Coller le presse-papiers dans la ligne de saisie, modifier comme requis, appuyez sur entrée. Variable clpstack est utilisé pour protéger les contenu du presse-papiers. Ce code est pour Windows. Linux peut utiliser importer le presse-papiers.
J'ai enfin trouvé une alternative simple qui fonctionne sur Windows et Linux. Essentiellement, je suis en utilisant le pyautogui module pour simuler la saisie de l'utilisateur. dans la praxis, qui ressemble à ceci:
Un Mot d'Avertissement:
typewrite
finitions.assurez-vous de fournir une solution de sauvegarde dans le cas où l'importation échoue. Si vous
courir dans
No module named 'Xlib'
, essayez d'installer lepython3-xlib
ou
python-xlib
paquet (ou lexlib
module). Cours d'exécution sur ssh peut aussi être unproblème.
Un exemple de secours de mise en œuvre:
Depuis un manquant serveur x peut logiquement se produire seulement sur linux, voici une application qui utilise les hts de réponse de secours:
Pas la meilleure approche, mais pour des raisons de partage...
Vous pouvez utiliser Javascript pour obtenir toutes sortes d'entrées dans IPython Notebook.
Sur la cellule suivante, vous pouvez utiliser la nouvelle variable:
Nous pouvons utiliser Tkinter, et l'utilisation d'un StringVar pour ce faire. La limitation est que l'entrée est à travers une fenêtre Tkinter.
J'aime bien, Ça fonctionne sur la fenêtre
Ce n'est pas une très Bonne Réponse, mais c'est un travail autour de pour windows. Aussi dur que j'ai essayé, je ne pouvais pas obtenir Readline ou pyReadline pour travailler sur mon Windows10 ordinateur avec Python Version 3.5. J'ai donc écrit ceci à la place. Pas le meilleur code dans le monde depuis que je l'ai seulement été à l'aide de Python pour 3 mois. Mais il fonctionne.
Le bloc-notes arrêté le programme de s'exécuter jusqu'à ce qu'il était fermé, donc l'entrée() de la ligne ci-dessous, il n'était pas nécessaire. Une fois le bloc-notes a été ouverte la première fois et de les placer là où je le voulais sur l'écran, C'était comme une fenêtre de saisie de la fenêtre. Je suppose que vous pouvez utiliser n'importe quel éditeur de texte comme Notepad++ ou Scripe ou Code Writer, etc.
Si vous faites cela, l'utilisateur serait amené à supprimer le texte existant. Qu'en fournissant une valeur par défaut si l'utilisateur appuie sur "retour"?