python file handling tutorial
Un regard approfondi sur les opérations de gestion de fichiers Python avec des exemples pratiques:
Dans la série de Tutoriel Python pour les débutants , nous en avons appris plus sur Fonctions de chaîne Python dans notre dernier tutoriel.
Python nous fournit une fonctionnalité importante pour lire les données du fichier et écrire des données dans un fichier.
La plupart du temps, dans les langages de programmation, toutes les valeurs ou données sont stockées dans certaines variables qui sont de nature volatile.
Parce que les données seront stockées dans ces variables uniquement pendant l'exécution et seront perdues une fois l'exécution du programme terminée. Par conséquent, il est préférable de sauvegarder ces données en permanence à l'aide de fichiers.
Ce que vous apprendrez:
- Comment Python gère les fichiers?
- Types de fichiers en Python
- Opérations de gestion de fichiers Python
- Encodage dans les fichiers
- Écriture et lecture de données à partir d'un fichier binaire
- Attributs d'E / S de fichier
- Méthodes de fichier Python
- Résumé
- lecture recommandée
Comment Python gère les fichiers ?
Si vous travaillez dans une grande application logicielle où ils traitent un grand nombre de données, nous ne pouvons pas nous attendre à ce que ces données soient stockées dans une variable car les variables sont de nature volatile.
Par conséquent, quand êtes-vous sur le point de gérer de telles situations, le rôle des fichiers entrera en jeu.
Comme les fichiers sont de nature non volatile, les données seront stockées en permanence dans un périphérique secondaire comme le disque dur et en utilisant python, nous traiterons ces fichiers dans nos applications.
Pensez-vous à la manière dont python gérera les fichiers?
Prenons un Exemple de la façon dont les gens normaux traiteront les fichiers. Si nous voulons lire les données d'un fichier ou écrire les données dans un fichier, alors, tout d'abord, nous allons ouvrir le fichier ou créer un nouveau fichier si le fichier n'existe pas, puis effectuer les opérations normales de lecture / écriture , enregistrez le fichier et fermez-le.
De même, nous faisons les mêmes opérations en python en utilisant des méthodes ou des fonctions intégrées.
Types de fichiers en Python
Il existe deux types de fichiers en Python et chacun d'eux est expliqué ci-dessous en détail avec des exemples pour vous faciliter la compréhension.
Elles sont:
- Fichier binaire
- Fichier texte
Fichiers binaires en Python
La plupart des fichiers que nous voyons dans notre système informatique sont appelés fichiers binaires.
Exemple:
- Fichiers de document: .pdf, .doc, .xls etc.
- Fichiers image: .png, .jpg, .gif, .bmp etc.
- Fichiers vidéo: .mp4, .3gp, .mkv, .avi etc.
- Fichiers audio: .mp3, .wav, .mka, .aac etc.
- Fichiers de base de données: .mdb, .accde, .frm, .sqlite etc.
- Fichiers d'archive: .zip, .rar, .iso, .7z etc.
- Fichiers exécutables: .exe, .dll, .class etc.
Lecture recommandée = >> Comment ouvrir un fichier .7z
Tous les fichiers binaires suivent un format spécifique. Nous pouvons ouvrir certains fichiers binaires dans l’éditeur de texte normal, mais nous ne pouvons pas lire le contenu présent dans le fichier. En effet, tous les fichiers binaires seront encodés au format binaire, qui ne peut être compris que par un ordinateur ou une machine.
Pour gérer ces fichiers binaires, nous avons besoin d'un type de logiciel spécifique pour l'ouvrir.
Par exemple, Vous avez besoin du logiciel Microsoft Word pour ouvrir les fichiers binaires .doc. De même, vous avez besoin d'un logiciel de lecture de pdf pour ouvrir les fichiers binaires .pdf et vous avez besoin d'un logiciel d'éditeur de photos pour lire les fichiers d'image et ainsi de suite.
Fichiers texte en Python
Les fichiers texte n'ont pas d'encodage spécifique et peuvent être ouverts dans l'éditeur de texte normal lui-même.
Exemple:
- Normes Web: html, XML, CSS, JSON etc.
- Code source: c, app, js, py, java etc.
- Documents: txt, tex, RTF etc.
- Données tabulaires: csv, tsv etc.
- Configuration: ini, cfg, reg etc.
Dans ce tutoriel, nous verrons comment gérer à la fois du texte et des fichiers binaires avec quelques exemples classiques.
Opérations de gestion de fichiers Python
Plus important encore, il existe 4 types d'opérations qui peuvent être gérées par Python sur des fichiers:
- Ouvert
- Lire
- Écrivez
- Fermer
Les autres opérations comprennent:
- Renommer
- Effacer
Python Créer et ouvrir un fichier
Python a une fonction intégrée appelée open () pour ouvrir un fichier.
Il faut au moins un argument comme indiqué dans la syntaxe ci-dessous. La méthode open renvoie un objet fichier qui est utilisé pour accéder aux méthodes d'écriture, de lecture et autres méthodes intégrées.
Syntaxe:
file_object = open(file_name, mode)
Ici, nom_fichier est le nom du fichier ou l'emplacement du fichier que vous souhaitez ouvrir, et nom_fichier doit également inclure l'extension de fichier. Ce qui signifie dans test.txt - le terme test est le nom du fichier et .txt est l'extension du fichier.
Le mode dans la syntaxe de la fonction ouverte indiquera à Python quelle opération vous voulez faire sur un fichier.
- «R» - Mode de lecture: Le mode lecture est utilisé uniquement pour lire les données du fichier.
- «W» - Mode d’écriture: Ce mode est utilisé lorsque vous souhaitez écrire des données dans le fichier ou le modifier. Souvenez-vous que le mode d'écriture écrase les données présentes dans le fichier.
- «A» - Mode d’ajout: Le mode Ajouter est utilisé pour ajouter des données au fichier. N'oubliez pas que les données seront ajoutées à la fin du pointeur de fichier.
- «R +» - Mode lecture ou écriture: Ce mode est utilisé lorsque nous voulons écrire ou lire les données à partir du même fichier.
- 'A +' - Mode Ajouter ou Lire: Ce mode est utilisé lorsque nous voulons lire des données à partir du fichier ou ajouter les données dans le même fichier.
Remarque: Les modes mentionnés ci-dessus sont pour l'ouverture, la lecture ou l'écriture de fichiers texte uniquement.
Lors de l'utilisation de fichiers binaires, nous devons utiliser les mêmes modes avec la lettre «B» à la fin. Pour que Python puisse comprendre que nous interagissons avec des fichiers binaires.
- «Wb» - Ouvrez un fichier en mode écriture seule au format binaire.
- «Rb» - Ouvrez un fichier pour le mode lecture seule au format binaire.
- 'De' - Ouvrez un fichier pour ajouter uniquement le mode au format binaire.
- «Rb +» - Ouvrez un fichier en mode lecture et écriture uniquement au format binaire.
- «De +» - Ouvrez un fichier pour l'ajout et le mode lecture seule au format binaire.
Exemple 1:
fo = open(“C:/Documents/Python/test.txt”, “r+”)
Dans l'exemple ci-dessus, nous ouvrons le fichier nommé «test.txt» présent à l'emplacement «C: / Documents / Python /» et nous ouvrons le même fichier en mode lecture-écriture ce qui nous donne plus de flexibilité.
Exemple 2:
fo = open(“C:/Documents/Python/img.bmp”, “rb+”)
Dans l'exemple ci-dessus, nous ouvrons le fichier nommé «img.bmp» présent à l'emplacement «C: / Documents / Python /», mais ici nous essayons d'ouvrir le fichier binaire.
Python lu à partir d'un fichier
Afin de lire un fichier en python, nous devons ouvrir le fichier en lecture.
Il existe trois manières de lire les fichiers en python.
- lire ((n))
- readline ((n))
- readlines ()
Ici, n est le nombre d'octets à lire.
Commençons par créer un exemple de fichier texte comme indiqué ci-dessous.
Voyons maintenant ce que fait chaque méthode de lecture:
Exemple 1:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.read(5))
Production:
Bonjour
Ici, nous ouvrons le fichier test.txt en mode lecture seule et ne lisons que les 5 premiers caractères du fichier en utilisant la méthode my_file.read (5).
Production:
Exemple 2:
qu'est-ce que loadrunner dans les tests logiciels
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.read())
Production:
Bonjour le monde
Bonjour Python
Bonjour
Ici, nous n'avons fourni aucun argument dans la fonction read (). Par conséquent, il lira tout le contenu présent à l'intérieur du fichier.
Production:
Exemple 3:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.readline(2))
Production:
Il
Cette fonction renvoie les 2 premiers caractères de la ligne suivante.
Production:
Exemple 4:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.readline())
Production:
Bonjour le monde
En utilisant cette fonction, nous pouvons lire le contenu du fichier ligne par ligne.
Production:
Exemple 5:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.readlines())
Production:
(«Hello World n», «Hello Python n», «Good Morning»)
Ici, nous lisons toutes les lignes présentes à l'intérieur du fichier texte, y compris les caractères de nouvelle ligne.
Production:
Voyons maintenant quelques exemples plus pratiques de lecture d'un fichier.
Lire une ligne spécifique à partir d'un fichier
line_number = 4 fo = open(“C:/Documents/Python/test.txt”, ’r’) currentline = 1 for line in fo: if(currentline == line_number): print(line) break currentline = currentline +1
Production:
Comment allez-vous
Dans l'exemple ci-dessus, nous essayons de lire uniquement les 4eligne du fichier «test.txt» en utilisant un 'Pour la boucle' .
Production:
Lire l'intégralité du fichier à la fois
filename = “C:/Documents/Python/test.txt” filehandle = open(filename, ‘r’) filedata = filehandle.read() print(filedata)
Production:
Bonjour le monde
Bonjour Python
Bonjour
Comment allez-vous
Production:
Écrire dans un fichier Python
Afin d'écrire des données dans un fichier, nous devons ouvrir le fichier en mode écriture.
Nous devons être très prudents lors de l'écriture des données dans le fichier car il écrase le contenu présent dans le fichier que vous écrivez, et toutes les données précédentes seront effacées.
Nous avons deux méthodes pour écrire des données dans un fichier comme indiqué ci-dessous.
- write (chaîne)
- écrits (liste)
Exemple 1:
my_file = open(“C:/Documents/Python/test.txt”, “w”) my_file.write(“Hello World”)
Le code ci-dessus écrit la chaîne «Hello World» dans le fichier «test.txt».
Avant d'écrire des données dans un fichier test.txt:
Production:
Exemple 2:
my_file = open(“C:/Documents/Python/test.txt”, “w”) my_file.write(“Hello World
”) my_file.write(“Hello Python”)
La première ligne sera «Hello World» et comme nous l’avons mentionné caractère n, le curseur se déplacera sur la ligne suivante du fichier puis écrira «Hello Python».
compilateur c ++ pour eclipse
N'oubliez pas que si nous ne mentionnons pas le caractère n, les données seront écrites en continu dans le fichier texte comme 'Hello WorldHelloPython'
Production:
Exemple 3:
fruits = (“Apple
”, “Orange
”, “Grapes
”, “Watermelon”) my_file = open(“C:/Documents/Python/test.txt”, “w”) my_file.writelines(fruits)
Le code ci-dessus écrit un liste de données dans le fichier «test.txt» simultanément.
Production:
Ajouter Python au fichier
Pour ajouter des données dans un fichier, nous devons ouvrir le fichier en mode «a +» afin d’avoir accès aux modes d’ajout et d’écriture.
Exemple 1:
my_file = open(“C:/Documents/Python/test.txt”, “a+”) my_file.write (“Strawberry”)
Le code ci-dessus ajoute la chaîne «Apple» à la finir du fichier «test.txt».
Production:
Exemple 2:
my_file = open(“C:/Documents/Python/test.txt”, “a+”) my_file.write (“
Guava”)
Le code ci-dessus ajoute la chaîne 'Apple' à la fin du fichier 'test.txt' dans une nouvelle ligne .
Production:
Exemple 3:
fruits = (“
Banana”, “
Avocado”, “
Figs”, “
Mango”) my_file = open(“C:/Documents/Python/test.txt”, “a+”) my_file.writelines(fruits)
Le code ci-dessus ajoute une liste de données dans un fichier «test.txt».
Production:
Exemple 4:
text=('
Hello','
Hi','
Python') my_file=open('C:/Documents/Python/test.txt',mode='a+') my_file.writelines(text) print('where the file cursor is:',my_file.tell()) my_file.seek(0) for line in my_file: print(line)
Dans le code ci-dessus, nous ajoutons la liste des données dans le fichier 'test.txt'. Ici, vous pouvez observer que nous avons utilisé la méthode tell () qui imprime la position actuelle du curseur.
chercher (décalage): Le décalage prend trois types d'arguments à savoir 0,1 et 2.
Lorsque le décalage est de 0: La référence sera pointée au début du fichier.
Lorsque le décalage est 1: La référence sera pointée vers la position actuelle du curseur.
Lorsque le décalage est de 2: La référence sera pointée à la fin du fichier.
Production:
Fermer le fichier Python
Pour fermer un fichier, nous devons d'abord ouvrir le fichier. En python, nous avons une méthode intégrée appelée close () pour fermer le fichier qui est ouvert.
Chaque fois que vous ouvrez un fichier, il est important de le fermer, en particulier avec la méthode write. Parce que si nous n'appelons pas la fonction close après la méthode d'écriture, les données que nous avons écrites dans un fichier ne seront pas enregistrées dans le fichier.
Exemple 1:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.read()) my_file.close()
Exemple 2:
my_file = open(“C:/Documents/Python/test.txt”, “w”) my_file.write(“Hello World”) my_file.close()
Renommer ou supprimer un fichier en Python
Python nous fournit un module «os» qui a des méthodes intégrées qui nous aideraient à effectuer les opérations sur les fichiers telles que le changement de nom et la suppression du fichier.
Pour utiliser ce module, tout d'abord, nous devons importer le module «os» dans notre programme puis appeler les méthodes associées.
méthode rename ():
Cette méthode rename () accepte deux arguments, à savoir le nom de fichier actuel et le nouveau nom de fichier.
Syntaxe:
os.rename(current_file_name, new_file_name)
Exemple 1:
import os os.rename(“test.txt”, “test1.txt”)
Ici, «test.txt» est le nom du fichier actuel et «test1.txt» est le nouveau nom de fichier.
Vous pouvez spécifier l'emplacement ainsi que celui indiqué dans l'exemple ci-dessous.
Exemple 2:
import os os.rename(“C:/Documents/Python/test.txt”, “C:/Documents/Python/test1.txt”)
Avant de renommer le fichier:
Après avoir exécuté le programme ci-dessus
remove () méthode:
Nous utilisons la méthode remove () pour supprimer le fichier en fournissant le nom du fichier ou l'emplacement du fichier que vous souhaitez supprimer.
Syntaxe:
os.remove(file_name)
Exemple 1:
import os os.remove(“test.txt”)
Ici, «test.txt» est le fichier que vous souhaitez supprimer.
De même, nous pouvons également transmettre l'emplacement du fichier aux arguments comme indiqué dans l'exemple ci-dessous
Exemple 2:
import os os.remove(“C:/Documents/Python/test.txt”)
Encodage dans les fichiers
L'encodage de fichier représente la conversion de caractères dans un format spécifique que seule une machine peut comprendre.
Différentes machines ont un format d'encodage différent, comme indiqué ci-dessous.
- Utilisations du système d'exploitation Microsoft Windows «Cp1252» format d'encodage par défaut.
- Utilisations du système d'exploitation Linux ou Unix «Utf-8» format d'encodage par défaut.
- Le système d'exploitation MAC d'Apple utilise «Utf-8» ou «utf-16» format d'encodage par défaut.
Voyons l’opération d’encodage avec quelques exemples.
Exemple 1:
my_file = open(“C:/Documents/Python/test.txt”, mode=”r”) print(“Microsoft Windows encoding format by default is:”, my_file.encoding) my_file.close()
Production:
Le format d'encodage Microsoft Windows par défaut est cp1252.
Ici, j'ai exécuté mon programme sur la machine Windows, il a donc imprimé le codage par défaut comme «cp1252».
Production:
Nous pouvons également changer le format d'encodage d'un fichier en le passant comme arguments à la fonction open.
Exemple 2:
my_file = open(“C:/Documents/Python/test.txt”, mode=”w”, encoding=”cp437”) print(“File encoding format is:”, my_file.encoding) my_file.close()
Production:
Le format de codage du fichier est: cp437
Production:
Exemple 3:
my_file = open(“C:/Documents/Python/test.txt”, mode=”w”, encoding=”utf-16”) print(“File encoding format is:”, my_file.encoding) my_file.close()
Production:
sql interview questions et réponses pour les novices pdf
Le format de codage du fichier est: utf-16
Production:
Écriture et lecture de données à partir d'un fichier binaire
Les fichiers binaires stockent les données au format binaire (0 et 1) qui est compréhensible par la machine. Ainsi, lorsque nous ouvrons le fichier binaire dans notre machine, il décode les données et les affiche dans un format lisible par l'homme.
Exemple:
# Créons un fichier binaire.
my_file = open(“C:/Documents/Python/bfile.bin”, “wb+”) message = “Hello Python” file_encode = message.encode(“ASCII”) my_file.write(file_encode) my_file.seek(0) bdata = my_file.read() print(“Binary Data:”, bdata) ntext = bdata.decode(“ASCII”) print(“Normal data:”, ntext)
Dans l'exemple ci-dessus, nous créons d'abord un fichier binaire «Bfile.bin» avec l'accès en lecture et en écriture et les données que vous voulez entrer dans le fichier doivent être encodées avant d'appeler la méthode d'écriture.
De plus, nous imprimons les données sans les décoder, afin de pouvoir observer à quoi ressemblent exactement les données à l'intérieur du fichier lorsqu'elles sont codées et nous imprimons également les mêmes données en les décodant afin qu'elles soient lisibles par les humains.
Production:
Données binaires: b’Hello Python »
Données normales: Hello Python
Production:
Attributs d'E / S de fichier
Attribut | Description |
---|---|
readlines () | Lit et renvoie toutes les lignes du fichier |
Nom | Renvoie le nom du fichier |
Mode | Mode de retour du fichier |
Codage | Renvoie le format d'encodage du fichier |
Fermé | Renvoie true si le fichier fermé sinon renvoie false |
Exemple:
my_file = open(“C:/Documents/Python/test.txt”, “a+”) print(“What is the file name? ”, my_file.name) print(“What is the file mode? ”, my_file.mode) print(“What is the encoding format? ”, my_file.encoding) print(“Is File closed? ”, my_file.closed) my_file.close() print(“Is File closed? ”, my_file.closed)
Production:
Quel est le nom du fichier? C: /Documents/Python/test.txt
Quel est le mode fichier? r
Quel est le format d'encodage? cp1252
Le fichier est-il fermé? Faux
Le fichier est-il fermé? Vrai
Production:
Essayons quelques autres méthodes du fichier.
Exemple:
my_file = open(“C:/Documents/Python/test.txt”, “w+”) my_file.write(“Hello Python
Hello World
Good Morning”) my_file.seek(0) print(my_file.read()) print(“Is file readable: ?”, my_file.readable()) print(“Is file writeable: ?”, my_file.writable()) print(“File no:”, my_file.fileno()) my_file.close()
Production:
Bonjour Python
Bonjour le monde
Bonjour
Le fichier est-il lisible:? Vrai
Le fichier est-il accessible en écriture:? Vrai
No de dossier: 3
Production:
Méthodes de fichier Python
Fonction | Explication |
---|---|
ouvert() | Pour ouvrir un fichier |
Fermer() | Fermer un fichier ouvert |
fileno () | Renvoie un nombre entier du fichier |
lire (n) | Lit «n» caractères du fichier jusqu'à la fin du fichier |
lisible() | Renvoie vrai si le fichier est lisible |
readline () | Lire et renvoyer une ligne du fichier |
chercher (décalage) | Changer la position du curseur par octets comme spécifié par le décalage |
recherchable () | Renvoie true si le fichier prend en charge l'accès aléatoire |
raconter() | Renvoie l'emplacement actuel du fichier |
inscriptible () | Renvoie true si le fichier est accessible en écriture |
écrivez() | Écrit une chaîne de données dans le fichier |
écritures () | Écrit une liste de données dans le fichier |
Voyons ce dont nous avons discuté jusqu'à présent dans un programme final.
Exemple:
my_file = open('C:/Documents/Python/test.txt', mode='w+') print('What is the file name? ', my_file.name) print('What is the mode of the file? ', my_file.mode) print('What is the encoding format?', my_file.encoding) text = ('Hello Python
', 'Good Morning
', 'Good Bye') my_file.writelines(text) print('Size of the file is:', my_file.__sizeof__()) print('Cursor position is at byte:', my_file.tell()) my_file.seek(0) print('Content of the file is:', my_file.read()) my_file.close() file = open('C:/Documents/Python/test.txt', mode='r') line_number = 3 current_line = 1 data = 0 for line in file: if current_line == line_number: data = line print('Data present at current line is:', data) break current_line = current_line + 1 bin_file = open('C:/Documents/Python/bfile.exe', mode='wb+') message_content = data.encode('utf-32') bin_file.write(message_content) bin_file.seek(0) bdata = bin_file.read() print('Binary Data is:', bdata) ndata = bdata.decode('utf-32') print('Normal Data is:', ndata) file.close() bin_file.close()
Production:
Quel est le nom du fichier? C: /Documents/Python/test.txt
Quel est le mode du fichier? w +
Quel est le format d'encodage? cp1252
La taille du fichier est: 192
La position du curseur est à l'octet: 36
Le contenu du fichier est: Hello Python
Bonjour
Au revoir
Les données présentes sur la ligne actuelle sont: Au revoir
Les données binaires sont: b ' xff xfe x00 x00G x00 x00 x00o x00 x00 x00o x00 x00 x00d x00 x00 x00 x00 x00 x00B x00 x00 x00y x00 x00 x00e x00 x00 x00 ′
Les données normales sont: au revoir
Production:
Résumé
Vous trouverez ci-dessous quelques conseils qui peuvent être résumés à partir du didacticiel ci-dessus:
- Nous utilisons généralement un fichier pour stocker les données de manière permanente dans le stockage secondaire car il est de nature non volatile, de sorte que les données puissent être utilisées à l'avenir.
- Parfois, dans certaines applications, nous pouvons vouloir lire les données à partir d'un fichier texte ou d'un fichier binaire, afin de pouvoir y parvenir en utilisant les fonctions intégrées de Python telles que les méthodes d'ouverture, de lecture, d'écriture, etc.
- Vous devez être très prudent lors de l'utilisation de la méthode d'écriture car les données que vous écrivez dans le fichier seront écrasées et les anciennes données seront perdues.
- Afin d’éviter l’écrasement des données, il est préférable d’ouvrir un fichier en mode d’écriture et d’ajout afin que les données soient ajoutées à la fin du fichier.
- N'oubliez pas que lorsque vous ouvrez un fichier en mode binaire, il n'accepte pas le paramètre d'encodage.
- Vous pouvez renommer et supprimer un fichier en utilisant les méthodes renommer et supprimer du module / package «os».
Nous espérons que vous avez apprécié ce didacticiel informatif sur la gestion des fichiers Python. Notre prochain tutoriel vous expliquera plus en détail la fonction principale de Python.
Tutoriel PREV | Tutoriel SUIVANT
lecture recommandée
- Entrée-sortie et fichiers en Python (ouverture, lecture et écriture de Python dans un fichier)
- Tutoriel Python DateTime avec des exemples
- Tutoriel Python pour les débutants (formation pratique gratuite sur Python)
- Tutoriels Eclipse détaillés pour les débutants
- Fonctions de chaîne Python
- Tutoriel Python String Split
- Variables Python
- Objets de fichier VBScript: CopyFile, DeleteFile, OpenTextFile, lecture et écriture de fichier texte