oujood.com

Comment lire un fichier en Python ?

Dans ce tutoriel, vous découvrirez les opérations sur les fichiers en Python. Plus précisément, l'ouverture et lecture d'un fichier
Python fournit des fonctions intégrées pour créer, écrire et lire des fichiers. Deux types de fichiers peuvent être manipulés dans Python : les fichiers texte normaux et les fichiers binaires (écrits en langage binaire).

chercher |

Ouverture de fichier en python

Les fichiers texte :

Dans ce type de fichier, chaque ligne de texte est terminée par un caractère spécial appelé EOL (End of Line), qui est par défaut le caractère de nouvelle ligne ('\n') dans python.

Les fichiers binaires :

Dans ce type de fichier, il n'y a pas de terminaison pour une ligne et les données sont stockées après avoir été converties en langage binaire compréhensible par la machine.

Mode d'accès

Les modes d'accès déterminent le type d'opérations possibles dans le fichier ouvert. Ils font référence à la manière dont le fichier sera utilisé une fois ouvert. Ces modes définissent également l'emplacement du curseur de fichier dans le fichier. Le curseur de fichier est similaire à une poignée, qui définit l'endroit où les données doivent être lues ou écrites dans le fichier. Les différents modes d'accès pour la lecture d'un fichier sont les suivants

1. Lecture seule ('r') : Ouvrir le fichier texte pour la lecture. Le curseur est positionné au début du fichier. Si le fichier n'existe pas, une erreur d'entrée/sortie est générée. C'est également le mode par défaut dans lequel le fichier est ouvert.

2. Lecture et écriture ('r+') : Ouvre le fichier pour la lecture et l'écriture. Le curseur est positionnée au début du fichier. Lance une erreur d'E/S si le fichier n'existe pas.

3. Ajouter et lire ('a+') : Ouvre le fichier pour la lecture et l'écriture. Le fichier est créé s'il n'existe pas. Le curseur est positionnée à la fin du fichier. Les données en cours d'écriture seront insérées à la fin, après les données existantes.

Note : Pour en savoir plus sur le mode d'accès, cliquez ici.

Ouverture d'un fichier en python

Avant de faire toute manipulation sur un fichier, il faut tout en premier lieu l'ouvrir.

L'ouverture de fichier en python se fait à l'aide de la fonction open(). Pour cette fonction, il n'est pas nécessaire d'importer de module.

La syntaxe est :

Objet_fichier = open(r"Nom_de_fichier", "Mode_d'accès")


Le fichier doit exister dans le même répertoire que le fichier du programme python, sinon, l'adresse complète du fichier doit être écrite à la place du nom de fichier.(par exemple: "C:\dossier\non du fichier")

Note : Le r avant le nom de fichier permet d'éviter que les caractères de la chaîne du nom de fichier soient traités comme des caractères spéciaux.
Par exemple, s'il y a \temp dans l'adresse du fichier, alors \t est traité comme le caractère de tabulation et une erreur est levée pour adresse invalide.
Le r rend la chaîne brute, c'est-à-dire qu'il indique que la chaîne ne contient aucun caractère spécial. Le r peut être ignoré si le fichier est dans le même répertoire puisque que le chemin du fichier n'est pas indiqué.

  Copier le code

# Fonction d'ouverture pour ouvrir() le fichier "MonFichier1.txt".
# (même répertoire) en mode lecture seule
file1 = open("MonFichier1.txt", "r")	
# on stocke sa référence dans la variable file1

# et "MonFichier2.txt" dans D:\Text em mode lecure et écriture
file2 = open(r "D:\Text\MonFichier2.txt", "r+")
# et on stocke sa référence dans la variable file2
Ici, nous avons créé deux objets : file1 comme objet pour MonFichier1 et file2 comme objet pour MonFichier2.

Puis on peut faire ce que nous voulons avec ces deux variable.

Lecture d'un fichier en python

Il existe trois façons de lire des données à partir d'un fichier texte.

Dans ce qui suit objet_fichier est l'objet créé par la fonction open() comme vu ci-dessous.

1. la fonction read() : Retourne les octets lus sous la forme d'une chaîne de caractères. Lit n octets, si aucun n n'est spécifié, lit le fichier entier.
 Objet_fichier.read([n])

2. readline() : Lit une ligne du fichier et la renvoie sous la forme d'une chaîne de caractères.pour n spécifié, lit au maximum n octets. Cependant, ne lit pas plus d'une ligne, même si n dépasse la longueur de la ligne.
Objet_fichier.readline([n])

3. readlines() : Lit toutes les lignes et renvoie le contenu de chaque ligne comme une liste d'éléments de type chaîne de caractères.
Fichier_objet.readlines()

Exemple : Programme pour montrer différentes façons de lire les données à partir d'un fichier.

  Copier le code

# Création d'un fichier texte oujood.txt
file1 = open("oujood.txt", "w")
L = ["C'est Delhi ", "C'est Paris ", "C'est London "]

# Écriture de données dans le fichier texte
# oujood.txt
file1.write("Bonjour !\n Bienvenue sur oujood.txt \n"
            "Ce fichier est destiné à des fins de test."
            "\n Bonne chance ! et merci \n ")
file1.writelines(L)
file1.close()
# Nous fermons le fichier pour pouvoir
# changer de mode d'accès au fichier dans ce qui suit
# Re-ouverture du fichier en mode lecture
file1 = open("oujood.txt", "r")

print("1 La sortie de la fonction Read est :")
print(file1.read())
print()

# seek(n) met le curseur du fichier à la nième
# pour commencer depuis le début n=0.
file1.seek(0)

print("2 La sortie de la fonction Readline est :")
print(file1.readline())
print()

file1.seek(0)

# Pour montrer la différence entre read et readline
print("3 La sortie de la fonction Read(10) est :")
print(file1.read(10))
print()

file1.seek(0)

# fonction readline
print("4 La sortie de la fonction Readline(10) est :")
print(file1.readline(10))
print()

file1.seek(0)

# fonction readlines
print("5 La sortie de la fonction Readlines est :")
print(file1.readlines())
print()
file1.close()
la sortie sera comme suit:
1 La sortie de la fonction Read est :
Bonjour !
Bienvenue sur oujood.txt 
Ce fichier est destiné à des fins de test. 
 Bonne chance ! et merci 
 C'est Delhi C'est Paris C'est London 

2 La sortie de la fonction Readline est :
Bonjour !

3 La sortie de la fonction Read(10) est :
Bonjour !

4 La sortie de la fonction Readline(10) est :
Bonjour !

5 La sortie de la fonction Readlines est :
['Bonjour !\n', 'Bienvenue sur oujood.txt \n', 'Ce fichier est destiné à des fins de test. \n', ' Bonne chance ! et merci \n', " C'est Delhi C'est Paris C'est London "]

>>> %Run main.py
1 La sortie de la fonction Read est :
Bonjour !
 Bienvenue sur oujood.txt 
 Ce fichier est destiné à des fins de test. 
 Bonne chance ! et merci 
 C'est Delhi C'est Paris C'est London 

2 La sortie de la fonction Readline est :
Bonjour !

3 La sortie de la fonction Read(10) est :
Bonjour !

4 La sortie de la fonction Readline(10) est :
Bonjour !

5 La sortie de la fonction Readlines est :
['Bonjour !\n', ' Bienvenue sur oujood.txt \n', ' Ce fichier est destiné à des fins de test. \n', ' Bonne chance ! et merci \n', " C'est Delhi C'est Paris C'est London "]

Utilisation de l'instruction with

L'instruction with en Python est utilisée dans la gestion des exceptions pour rendre le code plus propre et beaucoup plus lisible. Elle simplifie la gestion des ressources communes similaires aux flux de fichiers.

Contrairement aux implémentations précédentes, il n'est pas nécessaire d'appeler file.close() lors de l'utilisation de l'instruction with. L'instruction with elle-même assure l'acquisition et la libération appropriées des ressources.
La syntaxe est:

with open nom_fichier as file :

Exemple : Programme pour montrer différentes manières de lire des données à partir d'un fichier.

  Copier le code

L = ["C'est Delhi \n", "C'est London \n", "C'est paris\n"]
  
# Création du fichier texte
with open("oujood.txt", "w") as file1:
    # Ecriture dans le fichier texte
    file1.write("Bonjour ! \n Bienvenue sur oujood.txt \n"
                "  Ce fichier est destiné à des fins de test.\n"
                "Bonne chance ! et merci.\n")
    file1.writelines(L)
    file1.close()  # pour le, changement de mode d'accées
  
with open("oujood.txt", "r") as fichier:
    # Lecture des données dans le fichier texte
    print(fichier.read())
la sortie sera comme suit:
Bonjour ! 
 Bienvenue sur oujood.txt 
  Ce fichier est destiné à des fins de test.
Bonne chance ! et merci.
C'est Delhi 
C'est London 
C'est paris

Fermeture d'un fichier

La fonction close() ferme le fichier et libère l'espace mémoire acquis par ce fichier. Elle doit être utilisée lorsque le fichier n'est plus nécessaire ou s'il doit être ouvert dans un autre mode d'accès.

La syntaxe est la suivante

Objet_fichier.close()

Voir les exemples ci-dessus.

Une bonne pratique consiste à toujours fermer le fichier lorsque vous en avez terminé.


Voir le cours suivant pour en savoir plus sur l'écriture dans un fichier

Voir aussi nos tutoriel :

HTML et CSS les flottants

HTML et CSS: Les éléments flottants. Position flottante :float...

fonction date_default_timezone_get

Récupère le décalage horaire par défaut utilisé par toutes les fonctions date/heure dans un script

propriété css background-blend-mode

Indique le mode de fusion de chaque couche de l’arrière plan (couleur ou image)