Ouverture et fermeture d'un fichier
Pour lire les données d'un fichier texte nommé « data.txt", vous devez utiliser la méthode "open" fournie avec les versions officielles de Python. Vérifiez l'exemple de code ci-dessous :
f = open('données.txt', 'r')F.Fermer()
La première instruction ouvre le « data.txt" en mode "r" (lecture seule). La méthode « open » accepte un nom de fichier et le mode de traitement du fichier comme arguments. Outre le mode "r", il existe également d'autres modes qui seront expliqués plus tard. L'extrait de code ci-dessus n'exécute aucune opération sur le fichier ouvert. La méthode "fermer" est utilisée pour fermer le fichier ouvert proprement afin que la mémoire puisse être libérée et pour éviter la corruption des données dans le fichier ouvert qui peut arriver parfois si le fichier n'est pas fermé correctement.
Au lieu d'utiliser la méthode "open" pour gérer l'ouverture et la fermeture des fichiers, vous pouvez la combiner avec le mot-clé "with" et utiliser l'instruction "with open".
avec open('data.txt', 'r') comme f :passe
Le principal avantage de l'utilisation d'une instruction « with open » est que l'interpréteur ferme automatiquement le fichier ouvert en toute sécurité lorsque le bloc de code « with open » est complètement analysé. Bien que le ramasse-miettes en Python ferme automatiquement les fichiers ouverts après un certain temps conformément aux règles prédéfinies, les instructions « with open » garantissent que le fichier est correctement fermé dès que le bloc de code est terminé pour libérer des ressources.
Lire les lignes d'un fichier texte
Pour lire le contenu d'un fichier, utilisez l'exemple de code ci-dessous :
avec open('data.txt', 'r') comme f :données = f.lis()
imprimer (données)
Par exemple, si « données.txt" contient 1 à 10 numéros, chacun sur une nouvelle ligne, vous obtiendrez la sortie suivante après avoir exécuté le code ci-dessus :
12
3
4
5
6
7
8
9
dix
L'intégralité du vidage des données du "data.txt" est stocké dans la variable "data". Si vous souhaitez lire les lignes d'une liste, vous pouvez utiliser les exemples de code suivants :
avec open('data.txt', 'r') comme f :données = f.lignes de lecture()
print (data) avec open('data.txt', 'r') comme f :
données = liste(f)
imprimer (données)
Notez que l'utilisation des extraits ci-dessus peut vous donner le caractère "\n" (nouvelle ligne) à la fin de chaque élément de la liste. Pour supprimer ces caractères de nouvelle ligne, vous devrez peut-être parcourir la liste. Vous pouvez à la fois créer une nouvelle liste et supprimer les caractères de nouvelle ligne en utilisant plutôt le code suivant :
liste_données = []avec open('data.txt', 'r') comme f :
pour la ligne en f :
liste_données.ajouter (ligne.déshabiller())
imprimer (liste_données)
L'exécution du code ci-dessus vous donnera le résultat suivant :
['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']Écrire des données dans un fichier ouvert
Pour écrire des données dans un fichier en cours d'ouverture à l'aide de l'instruction "with open", vous devrez fournir un mode d'ouverture différent comme argument. Voici quelques-uns des modes :
- 'a' - utilisé pour ajouter des données à la fin d'un fichier ouvert, crée un nouveau fichier s'il n'existe pas
- 'w' - efface le contenu du fichier ouvert et écrit de nouvelles données, crée un nouveau fichier s'il n'existe pas
- 'r' - mode lecture seule (mode par défaut si aucun argument n'est fourni)
- 'r+' - utilisé à la fois pour la lecture et l'écriture (la position initiale est au début du fichier)
- 'b' - le fichier est ouvert en mode binaire (utile pour les fichiers binaires non textuels), peut être combiné avec d'autres modes
- 'a+' - utilisé pour la lecture et l'ajout, crée un nouveau fichier s'il n'existe pas
- 'w+' - utilisé pour la lecture et l'écriture, crée un nouveau fichier s'il n'existe pas
Certains extraits de code utilisant différents modes pour écrire des données sont répertoriés ci-dessous.
Pour écrire un nouveau contenu dans un fichier texte tout en effaçant des données existantes, utilisez l'exemple suivant :
avec open('data.txt', 'w') comme f :F.écrire("1\n2")
Après avoir exécuté l'extrait ci-dessus, 1 à 10 nombres dans le "data.txt" doit être remplacé par deux nouvelles lignes.
Pour ajouter des lignes au début d'un fichier texte, vous devez utiliser la méthode "seek" pour revenir à la position de départ du tampon de fichier :
avec open('data.txt', 'r+') comme f :données = f.lis()
F.chercher(0)
F.écrire("-1\n0\n")
F.écrire (données)
Après avoir exécuté l'extrait ci-dessus, les chiffres -1 et 0 seront ajoutés aux deux premières lignes de "data.txt" fichiers.
Pour ajouter des données à la fin du fichier, utilisez l'exemple suivant :
avec open('data.txt', 'a') comme f :F.écrire("11\n12")
Après avoir exécuté l'extrait ci-dessus, les numéros 11 et 12 seront ajoutés à la fin du fichier.
Conclusion
Les classes et méthodes intégrées en Python offrent un moyen robuste de gérer les fichiers texte. Avec seulement quelques lignes de code, vous pouvez manipuler les données existantes dans un fichier ainsi qu'insérer de nouvelles lignes.