1. Entrée/sortie¶
Un programme informatique doit souvent pouvoir interagir avec l’extérieur. Il existe plusieurs manières de faire cela :
- soit en interagissant directement avec l’utilisateur : celui-ci peut rentrer des données grâce au clavier ou voir le résultat du programme s’afficher à l’écran ;
- soit au moyen de fichiers : le programme peut lire des informations dans des fichiers ou au contraire écrire des résultats dans des fichiers.
1.1. Interaction directe avec l’utilisateur¶
L’interpéteur IPython affiche par défaut le résultat d’une expression non évaluée à None
. Ce n’est pas le cas lorsque l’on exécute un script Python. Si l’on veut afficher des résultats à l’écran, il faut explicitement utiliser la fonction print
.
Dans cet exemple, on exécute le script stocké dans le fichier script_print.py
.
'titi' # Cette ligne n'affiche rien
print('toto')
$ python script_print.py
toto
Inversement lorsque l’on souhaite demander une information à l’utilisateur, on utilise la fonction input
. Celle-ci interrompt l’exécution du programme, ce qui permet à l’utilsateur d’entrer des caractères au clavier. Pour terminer sa saisie, l’utilisateur appuie alors sur la touche Entrée
. La fonction input
renvoie alors la chaîne de caractères entrée par l’utilisateur et l’exécution du programme reprend son cours. On peut également fournir en argument optionnel à la fonction input
un message à destination de l’utilisateur qui sera affiché avant que celui-ci commence à saisir des caractères au clavier.
In [1]: result = input('Quel est votre nom ?')
Quel est votre nom ?
# Ici l'utilisateur a entré Toto
In [2]: result
Out[2]: 'Toto'
1.2. Fichiers¶
Pour ouvrir un fichier, on utilise la fonction open
en donnant en argument le chemin du fichier. On peut préciser plusieurs paramètres optionnels.
mode
- Mode d’ouverture du fichier : essentiellement
'r'
pour lecture,'w'
pour écriture et'r+'
pour lecture/écriture. Par défaut, un fichier est ouvert en lecture seulement. encoding
- Encodage [1] du fichier : de nombreux encodages sont disponibles comme
'utf8'
(à privilégier) ou'ascii'
.
In [3]: f = open('test.txt', mode='r', encoding='utf8')
In [4]: f
Out[4]: <_io.TextIOWrapper name='test.txt' mode='r' encoding='utf8'>
In [5]: type(f)