{tag>cours python dev todo}}
====== Python: les fichiers ======
Les **fichiers** sont, comme souvent en Python, simples et intuitifs à utiliser, cependant il fau... t pour les **lire**. Nous allons voir qu'avec les fichiers, cette gestion de l'encodage est extrêmement simple puisque c'est l'objet fichier qui va se charger d'encoder et de décoder les cha
python qui correspond à la fois à:
* un (seul) fichier sur le disque;
* un espace de nom pour les vari... 'est pas concevable de tout concentrer en un seul fichier. C'est là qu'intervient la notion de **package**,... *répertoires** ce que que le **module** est aux **fichiers**.
Pour illustrer par la pratique nous allons c... odule_jouet.py
</code>
Ci dessous le contenu des fichiers ''%%__init__%%.py'' et ''module_jouet.py''
<cod
''os'' a deux rôles:
- Il va définir le nom du fichier qui va être cherché sur le disque dur, qui va s'a... portation =====
Premièrement, il faut trouver le fichier sur le disque dur. Pour cela, Python va regarder ... point d'entrée** (le point d'entrée est le nom du fichier que vous passez à l'interpréteur lorsque vous dém... cruté par défaut;
Ensuite, s'il ne trouve pas ce fichier, il va le chercher dans la variable système qui s
tion de **module**. Un module, c'est en fait un **fichier Python qui finit en .py**, un fichier Python normal, et lorsqu'on importe ce fichier avec l'instruction import, nous allons voir ça dans quelque... de mettre des opérations similaires dans le même fichier. Donc en fait vous pouvez voir un module comme un
ment un itérateur. C'est par exemple le cas des **fichiers**. **Pourquoi est-ce que les fichiers sont des itérateurs**? On le comprend assez aisément; on voit bien que si on avait à lire un fichier qui fasse des dizaines de megabytes ou des centai... s données en mémoire. Le choix de Python pour les fichiers, est de fournir un itérateur qui va parcourir li
emple une variable *x*, qui coexiste dans le même fichier à l'intérieur d'une fonction et à l'intérieur d'u... commencer par créer un module `spam.py`, donc un fichier python qui s'appelle `spam.py` contenant une cons... f():
print(x)
</code>
On définit un deuxième fichier python, `egg.py`, comme ceci:
<code python egg.p... uer ''%%import spam%%''. L'interpréteur recherche fichier **spam.py**, nous verrons dans une prochainement
ouvrir dans cette vidéo.
Commençons par créer un fichier `spam.py` qui va uniquement contenir `x = 1`. Et je vais créer un deuxième fichier, `egg.py`, qui contient uniquement `import spam` ... . Je vous laisse quelques instants pour créer ces fichiers et nous nous retrouvons dans quelques secondes. Une fois que ces fichiers sont créés, vous pouvez exécuter le fichier `egg
agées =====
Cette séquence aborde la gestion des fichiers et de nouveaux types built-in que sont les tuple... t exactement comme les types built-in.
* [[310_fichiers|Les fichiers]]
* [[320_tuples|Les tuples]]
* [[330_tables_de_hash|Tables de hash]]
* [[340_dictionn
tion.
Pour autre exemple, on aurait pu ouvrir un fichier qui contient, sur chaque ligne, un nombre ou une ... îne de caractères et passer directement cet objet fichier (qui est un itérateur) au générateur palindrome. ... lindrome extrait les palindromes contenus dans ce fichier pour les placer dans la structure de données souh
Et ensuite, la ligne juste au dessus, je vois le fichier dans lequel c'est apparu, donc on voit que c'est à la deuxième ligne de ce fichier, et je vois l'appel qui a produit cette erreur: d