« Les Fichiers avec Python » : différence entre les versions
mAucun résumé des modifications |
mAucun résumé des modifications |
||
(Une version intermédiaire par le même utilisateur non affichée) | |||
Ligne 3 : | Ligne 3 : | ||
== Modules utilisés == | == Modules utilisés == | ||
Il n'y en a pas par défaut. Python sait nativement gérer les fichiers disque. | Il n'y en a pas par défaut. Python sait nativement gérer les fichiers disque. | ||
== Opérations de base == | == Opérations de base == | ||
Ligne 82 : | Ligne 75 : | ||
|[[Fichier:Attention.png|gauche|57x57px|sans_cadre]]ATTENTION: Tout le fichier est mis en mémoire dans ce cas. Ca peut faire beaucoup même si Python gère le swap. | |[[Fichier:Attention.png|gauche|57x57px|sans_cadre]]ATTENTION: Tout le fichier est mis en mémoire dans ce cas. Ca peut faire beaucoup même si Python gère le swap. | ||
|} | |} | ||
Il existe aussi un équivalent de writelines:<syntaxhighlight lang="python3"> | |||
File = open(r"directory/file.txt","r") | |||
lines=File.readlines() | |||
print (lines) | |||
File.close() | |||
</syntaxhighlight>Dans ce cas ''lines'' contient une liste de lignes. | |||
''<small>Ce sont des valeurs encadrées par des "[ ]" mais on appelle ça des liste pas des tableaux....</small>'' | |||
On obtient donc à l'écran la sortie standard d'un objet liste :<syntaxhighlight lang="text"> | |||
['Hello Paris \n', 'Hello London \n', 'Hello New-York \n', 'Hello Noumea\n'] | |||
</syntaxhighlight> |
Version actuelle datée du 31 octobre 2024 à 09:13
Utiliser des fichiers avec python suit la même philosophie que les autres langages mais une syntaxe particulière. (surtout les modes de création qui diffèrent de ce qui se fait sous perl et en C)
Modules utilisés
Il n'y en a pas par défaut. Python sait nativement gérer les fichiers disque.
Opérations de base
Ouverture
Pour ouvrir un fichier avec python c'est simple on doit fournir son nom et le mode dans lequel on va l'ouvrir:
- Read Only "r" : dans ce mode on le pourra que lire le contenu du fichier. Le "handle" de fichier sera positionné au début.
- Read Write "r+" : Le fichier est ouvert en lecture écriture. Le "handle" de fichier sera toujours positionné au début.
- Write Only "w" : Ouvre un fichier en écriture. Si le fichier existe in est tronqué et son "handle" est toujours positionné au début d'un fichier vide. Si il n'existe pas il sera crée. (dans pas mal de langages cela corresponds à un "create" du "C")
- Write & Read "w+" : Ouvre un fichier comme en mode "w" mais permet également la lecture. Le "Handle" est toujours au début d'un fichier vide.
- Append only "a" : C'est la même chose que le "w" mais, si il existe, le fichier est préservé et le "handle" est positionné à la fin du fichier.
- Append & Read "a+" : Comme le mode "a" mais avec la possibilité de lire.
File = open(r"directory/file.txt","w")
Pour info le "r" devant le nom du fichier dit à python de ne pas interpréter les "/" comme des caractères d'échappement mais comme des "/" normaux. Le "r" veut dire "raw" dans ce cas. Ou c'est sujet à confusion avec le "r" qui donne le mode read
Le "/" doit être utilisé sous Linus, MAC mais aussi Windows. Le "\" serait anbigu.
Fermeture
On firme un fichier avec.... close.
File.close()
Oui File est un objet.
Ecriture
On utilisera la fonction write. Cette fonction n'ajoute pas de saut de ligne à la fin.
File = open(r"directory/file.txt","w")
File.write("Hello World\n")
File.close()
Crée un fichier contenant une ligne. La fonction writelines peut être aussi utilisée. Son argument est une liste de lignes.
L = ["Hello Paris \n","Hello London \n","Hello New-York \n"]
File = open(r"directory/file.txt","w")
File.writelines(L)
File.close()
Va créer un fichier disque contenant :
Hello Paris
Hello London
Hello New-York
Si on veut ajouter une ligne à la fin:
File = open(r"directory/file.txt","a")
File.write("Hello Noumea\n")
File.close()
Ajoute "Hello Noumea" au fichier qui existe déja.
Lecture
On peut lire le fichier octet par octet
File = open(r"directory/file.txt","r")
b=File.read(1)
print (p)
b=File.read(1)
print (p)
File.close()
On ouvre le fichier crée au paragraphe précédent et on affiche les deux premières lettres : "H" et "e" puisque le fichier commence par "Hello..." On peut lire tout le fichier en vrac en ne précisant pas de taille:
File = open(r"directory/file.txt","r")
vrac=File.read()
print (vrac)
File.close()
Qui imprimera :
Hello Paris
Hello London
Hello New-York
Hello Noumea
ATTENTION: Tout le fichier est mis en mémoire dans ce cas. Ca peut faire beaucoup même si Python gère le swap. |
Il existe aussi un équivalent de writelines:
File = open(r"directory/file.txt","r")
lines=File.readlines()
print (lines)
File.close()
Dans ce cas lines contient une liste de lignes.
Ce sont des valeurs encadrées par des "[ ]" mais on appelle ça des liste pas des tableaux....
On obtient donc à l'écran la sortie standard d'un objet liste :
['Hello Paris \n', 'Hello London \n', 'Hello New-York \n', 'Hello Noumea\n']