formations/python/formation/prompt.txt

109 lines
2.5 KiB
Plaintext
Raw Normal View History

2013-01-08 11:15:45 +01:00
Interactions avec l'utilisateur
===============================
2013-01-08 14:35:35 +01:00
Les prompts
2013-01-08 11:15:45 +01:00
--------------
`raw_input` ou `input`
(raw_input renvoie une string, input essayes d'évaluer, soyez prudent...)
>>> from subprocess import call
>>> filename = input("quel fichier voulez-vous afficher ?\n")
>>> call("cat " + filename, shell=True)
.. _cmdlabel:
2013-01-08 14:35:35 +01:00
Le module :mod:`cmd` et les interpréteurs
2013-01-08 11:15:45 +01:00
--------------------------------------------
2013-01-08 14:35:35 +01:00
Le monde des interpréteur ligne de commande...
2013-01-08 11:15:45 +01:00
Peu après l'âge de bronze vint le temps de l'interpréteur ligne de commande,
c'est-à-dire quelque chose de plus spécifique que **l'application ligne de commande**,
ou que l'utilitaire ligne de commande.
Un interpréteur ligne de commande est un programme qui :
2013-01-08 14:35:35 +01:00
- est forcément plein texte ;
- vous donne un prompt ;
- prend toutes ses entrées d'un coup ;
- produit une sortie (typiquement des lignes de texte) ;
- vous redonne un prompt.
2013-01-08 11:15:45 +01:00
Le shell unix est un bon exemple d'interpréteur ligne de commande.
Un utilitaire ligne de commande est un programme unix-like qui prend toutes
les entrées d'un coup, et qui vous renvoie une sortie d'un coup.
2013-01-08 14:35:35 +01:00
Le module :mod:`cmd` : exemple d'utilisation
2013-01-08 11:15:45 +01:00
.. module:: cmd
:synopsis: interpréteur ligne de commande
.. literalinclude:: snippets/cli.py
:download:`telecharger cmd <snippets/cli.py>`
::
>>> from cli import Cli
>>> prompt = Cli()
>>> prompt.cmdloop()
cli (command line interpreter)
(type help or ? for commands list)
#Prompt> ?
Documented commands (type help <command>):
==========================================
EOF exit
Undocumented commands:
======================
cmd help quit
#Prompt>
2013-01-08 14:35:35 +01:00
Pour ajouter une commande, utilisez juste l'héritage::
2013-01-08 11:15:45 +01:00
>>> from cli import Cli
>>> class Prompt(Cli):
... def do_hello(self, line):
... print "hello %s", line
...
>>> prompt = Prompt()
>>> prompt.cmdloop()
cli (command line interpreter)
(type help or ? for commands list)
#Prompt> ?
Documented commands (type help <command>):
==========================================
EOF exit
Undocumented commands:
======================
cmd hello help quit
#Prompt> hello world
.. todo:: faire un petit projet d'interpréteur ligne de commande du jeu C+/C-
2013-01-08 14:35:35 +01:00
Lire et écrire dans un fichier
2013-01-08 11:15:45 +01:00
-------------------------------
2013-01-08 14:35:35 +01:00
Les **handle de fichier** (file handles)
2013-01-08 11:15:45 +01:00
>>>
>>> fh = file('test', 'w')
>>> fh.write('hello world')
>>> fh.close()
>>> content = file('test', 'r').read()
>>> content
'hello world'
>>>