1. C'est quoi un fichier en Python ?
En Python, un fichier fait référence à un ensemble de données stockées dans une mémoire permanente, généralement sur le disque dur ou un autre support de stockage. Les fichiers permettent de stocker des informations de manière persistante, de sorte qu'elles peuvent être lues, écrites et manipulées même lorsque le programme est arrêté et redémarré.
Il existe deux types de fichiers couramment utilisés en Python :
- Fichiers texte : Les fichiers texte contiennent des caractères lisibles par l'homme et sont souvent utilisés pour stocker des données sous forme de texte brut, comme des documents, du code source, des configurations, etc.
- Fichiers binaires : Les fichiers binaires contiennent des données brutes qui ne sont pas directement lisibles par l'homme. Ils sont utilisés pour stocker des données complexes telles que des images, des vidéos, des fichiers exécutables, etc.
Python propose des mécanismes pour ouvrir, lire, écrire et manipuler les fichiers. Vous pouvez utiliser la fonction open() pour ouvrir un fichier et obtenir un objet fichier sur lequel vous pouvez appeler diverses méthodes pour interagir avec le contenu du fichier.
Voici un exemple d'ouverture et de lecture d'un fichier texte en Python :
1 2 3 4 |
# Ouvrir un fichier --existant-- en mode lecture with open('exemple.txt', 'r') as fichier: contenu = fichier.read() print(contenu) |
Explication du code : le fichier texte "exemple.txt" est ouvert en mode lecture ('r'), puis le contenu est lu et affiché.
Remarque
Notez bienqu'il ne faut pas oublier de fermer le fichier après avoir fini de l'utiliser. L'utilisation d'une instruction with (context manager) assure que le fichier est correctement fermé même en cas d'erreur.
2. Un fichier est il un objet Python ?
Effectivement, en Python, un fichier est considéré comme un objet. Plus précisément, lorsqu'un fichier est ouvert à l'aide de la fonction open(), un objet de type "fichier" est créé. Cet objet fichier possède des attributs et des méthodes spécifiques qui permettent d'interagir avec le contenu du fichier.
L'objet fichier est un exemple de la programmation orientée objet (POO) en Python. Il encapsule les fonctionnalités liées à la gestion des fichiers dans un ensemble cohérent de méthodes et d'attributs. Par exemple, vous pouvez appeler des méthodes telles que read(), write(), seek(), close() sur cet objet pour lire, écrire, déplacer le curseur de lecture, etc.
Voici un exemple de création et d'utilisation d'un objet fichier en Python :
1 2 3 4 5 6 7 8 |
# Ouvrir un fichier en mode écriture with open('exemple.txt', 'w') as fichier: fichier.write('Ceci est un exemple de fichier en Python.') # Ouvrir le fichier en mode lecture with open('exemple.txt', 'r') as fichier: contenu = fichier.read() print(contenu) |
Explication du code:
- open('exemple.txt', 'w') : ouvre un objet fichier en mode écriture 'w' et permet de le créer s'il n'existe pas. Et si le fichier existe déjà son contenu sera écrasé!
- La méthode write() : est utilisée pour écrire du contenu dans le fichier.
- En sortant de la boucle with : le fichier est automatiquement fermé !
- open('exemple.txt', 'r') : Ouvre le fichier en mode lecture ('r'),
- fichier.read() : L'objet fichier est utilisé pour appeler la méthode read() afin de lire le contenu du fichier.
3. Liste des méthodes associées à un objet fichier en Python
Nous allons vous présenter ici les principales méthodes associées à un objet fichier Python. Ces méthodes vous permettent de gérer toutes les opérations liées aux fichiers en Python, de leur lecture à leur écriture, en passant par leur manipulation et leur fermeture. Voici la liste quasi complète de toutes les méthodes associées à un objet fichier en Python, avec des descriptions pour chacune d'elles :
3.1 Méthodes pour la lecture de fichiers
- file.read(size): Lit et renvoie le contenu du fichier. Si size est spécifié, lit jusqu'à la taille donnée.
- file.readline(): Lit et renvoie une ligne du fichier.
- file.readlines(): Lit toutes les lignes du fichier et les renvoie sous forme de liste.
- file.readable(): Renvoie True si le fichier est en mode lecture, sinon False.
- file.seek(offset, whence=0): Déplace le curseur de lecture dans le fichier. L'argument whence peut être 0 (début), 1 (actuel) ou 2 (fin).
- file.tell(): Renvoie la position actuelle du curseur de lecture dans le fichier.
- file.close(): Ferme le fichier.
3.2 Méthodes pour l'écriture dans des fichiers
- file.write(string): Écrit la chaîne spécifiée dans le fichier. Renvoie le nombre de caractères écrits.
- file.writelines(lines): Écrit une liste de chaînes dans le fichier.
- file.writable(): Renvoie True si le fichier est en mode écriture, sinon False.
3.3 Méthodes de manipulation de fichiers
- file.flush(): Vide le tampon d'écriture et force l'écriture des données dans le fichier.
- file.truncate(size=None): Réduit la taille du fichier à la taille spécifiée. Si aucune taille n'est spécifiée, réduit à la position actuelle du curseur de lecture.
- file.fileno(): Renvoie le descripteur de fichier associé à l'objet fichier.
- file.isatty(): Renvoie True si le fichier est associé à un terminal (TTY), sinon False.
- file.seekable(): Renvoie True si le fichier prend en charge l'opération de recherche, sinon False.
3.4 Méthodes pour la gestion des itérations
- file.__iter__(): Renvoie un itérable pour les lignes du fichier. Permet d'utiliser le fichier dans une boucle for.
- file.__next__(): Renvoie la prochaine ligne du fichier lorsqu'il est utilisé dans une boucle for.
3.5 Méthodes pour la gestion des erreurs
- file.readable(): Renvoie True si le fichier est en mode lecture, sinon False.
- file.writable(): Renvoie True si le fichier est en mode écriture, sinon False.
- file.closed(): Renvoie True si le fichier est fermé, sinon False.
- file.encoding(): Renvoie l'encodage utilisé pour lire ou écrire le fichier.
3.6 Méthodes pour la gestion de contexte
- file.__enter__(): Utilisé dans la gestion de contexte (with statement) pour ouvrir le fichier.
- file.__exit__(exc_type, exc_value, traceback): Utilisé dans la gestion de contexte pour nettoyer les ressources et fermer le fichier.
Younes Derfoufi
CRMEF OUJDA