logo

Lire et écrire dans des fichiers texte en Python

Python fournit des fonctions intégrées pour créer, écrire et lire des fichiers. Deux types de fichiers peuvent être gérés en Python, les fichiers texte normaux et les fichiers binaires (écrits en langage binaire, 0 et 1).

  • Fichiers texte : Dans ce type de fichier, chaque ligne de texte se termine par un caractère spécial appelé EOL (End of Line), qui est le caractère de nouvelle ligne («   ») en Python par défaut.
  • Fichiers binaires : Dans ce type de fichier, il n'y a pas de terminateur de ligne et les données sont stockées après conversion en langage binaire compréhensible par machine.

Cet article se concentrera sur l'ouverture, la fermeture, la lecture et l'écriture de données dans un fichier texte. Ici, nous verrons également comment obtenir Python sortie dans un fichier texte.



Modes d'accès aux fichiers

Les modes d'accès régissent le type d'opérations possibles dans le fichier ouvert. Il fait référence à la manière dont le fichier sera utilisé une fois ouvert. Ces modes définissent également l'emplacement du Descripteur de fichier dans le fichier. Le descripteur de fichier est comme un curseur, qui définit à partir duquel les données doivent être lues ou écrites dans le fichier et nous pouvons obtenir la sortie Python dans un fichier texte.

Il existe 6 modes d'accès en Python :

  • Lecture seule (« r »)
  • Lire et écrire (« r+ »)
  • Écriture seule (« w »)
  • Écrire et lire (« w+ »)
  • Ajouter uniquement (« a »)
  • Ajouter et lire (« a+ »)

Lecture seule (« r ») : Ouvrez le fichier texte pour le lire. La poignée est positionnée au début du fichier. Si le fichier n'existe pas, génère une erreur d'E/S. C'est également le mode par défaut dans lequel un fichier est ouvert.



Lire et écrire (« r+ » ): Ouvrez le fichier en lecture et en écriture. La poignée est positionnée au début du fichier. Génère une erreur d’E/S si le fichier n’existe pas.

Écriture seule (« w ») : Ouvrez le fichier pour l'écriture. Pour les fichiers existants, les données sont tronquées et écrasées. La poignée est positionnée au début du fichier. Crée le fichier si le fichier n'existe pas.

Écrire et lire (« w+ ») : Ouvrez le fichier en lecture et en écriture. Pour un fichier existant, les données sont tronquées et écrasées. La poignée est positionnée au début du fichier.



Ajouter uniquement (« a ») : Ouvrez le fichier en écriture. Le fichier est créé s'il n'existe pas. La poignée est positionnée en fin de dossier. Les données en cours d'écriture seront insérées à la fin, après les données existantes.

Ajouter et lire (« a+ ») : Ouvrez le fichier en lecture et en écriture. Le fichier est créé s'il n'existe pas. La poignée est positionnée en fin de dossier. Les données en cours d'écriture seront insérées à la fin, après les données existantes.

Comment les fichiers sont-ils chargés dans la mémoire primaire ?

Il existe deux types de mémoire dans un ordinateur, à savoir la mémoire primaire et la mémoire secondaire. Chaque fichier que vous avez enregistré ou toute personne enregistrée se trouve dans la mémoire secondaire, car toutes les données de la mémoire principale sont supprimées lorsque l'ordinateur est éteint. Ainsi, lorsque vous devez modifier un fichier texte ou simplement travailler avec lui en python, vous devez charger ce fichier dans la mémoire principale. Python interagit avec les fichiers chargés dans la mémoire primaire ou la mémoire principale via gestionnaires de fichiers (C'est ainsi que votre système d'exploitation donne accès à Python pour interagir avec le fichier que vous avez ouvert en recherchant le fichier dans sa mémoire s'il le trouve, il renvoie un gestionnaire de fichier et vous pouvez ensuite travailler avec le fichier).

Ouverture d'un fichier texte en Python

Cela se fait en utilisant la fonction open(). Aucun module ne doit être importé pour cette fonction.

File_object = open(r'File_Name','Access_Mode')>

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 du fichier. Noter la r est placé avant le nom de fichier pour empêcher 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 emp dans l'adresse du fichier, alors est traité comme le caractère de tabulation et une erreur d'adresse non valide est générée. 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 se trouve dans le même répertoire et que l'adresse n'est pas placée.

Python




1 million en chiffres

# Open function to open the file 'MyFile1.txt'> # (same directory) in append mode and> file1>=> open>(>'MyFile1.txt'>,>'a'>)> # store its reference in the variable file1> # and 'MyFile2.txt' in D:Text in file2> file2>=> open>(r>'D:TextMyFile2.txt'>,>'w+'>)>

>

>

Ici, file1 est créé en tant qu'objet pour MyFile1 et file2 en tant qu'objet pour MyFile2

Fermer un fichier texte en Python

La fonction close() ferme le fichier et libère l'espace mémoire acquis par ce fichier. Il est utilisé lorsque le fichier n'est plus nécessaire ou s'il doit être ouvert dans un mode de fichier différent. Fichier_objet.close()

Python




# Opening and Closing a file 'MyFile.txt'> # for object name file1.> file1>=> open>(>'MyFile.txt'>,>'a'>)> file1.close()>

>

arbre de recherche binaire vs arbre binaire

>

Écrire dans un fichier en Python

Il existe deux manières d'écrire dans un fichier :

  • Utiliser write()
  • Utiliser des lignes d'écriture()

Écrire dans un fichier texte Python à l'aide de write()

écrire() : Insère la chaîne str1 sur une seule ligne dans le fichier texte.

File_object.write(str1)>

Écrire dans un fichier texte à l'aide de writelines()

writelines() : Pour une liste d'éléments de chaîne, chaque chaîne est insérée dans le fichier texte. Utilisé pour insérer plusieurs chaînes à la fois.

File_object.writelines(L) for L = [str1, str2, str3]>

Référence: write() VS writelines()

Lire à partir d'un fichier en Python

Il existe trois manières de lire les données d'un fichier texte :

Lire à partir d'un fichier à l'aide de read()

lire() : Renvoie les octets lus sous forme de chaîne. Lit n octets, si aucun n n'est spécifié, lit l'intégralité du fichier.

File_object.read([n])>

Lire un fichier texte à l'aide de readline()

readline() : Lit une ligne du fichier et renvoie sous la forme d'une chaîne. Pour n spécifié, lit au plus n octets. Cependant, ne lit pas plus d'une ligne, même si n dépasse la longueur de la ligne.

File_object.readline([n])>

Lire un fichier à l'aide de readlines()

readlines() : Lit toutes les lignes et les renvoie comme chaque ligne comme élément de chaîne dans une liste.

 File_object.readlines()>

Note: ' ' est traité comme un caractère spécial de deux octets.

Dans cet exemple, un fichier nommé monfichier.txt est créé et ouvert en mode écriture ('w'>). Les données sont écrites dans le fichier en utilisantwrite>etwritelines>méthodes. Le fichier est ensuite rouvert en mode lecture et ajout ('r+'>). Diverses opérations de lecture, notammentread>,readline>,readlines>, et l'utilisation deseek>, démontrez différentes manières de récupérer des données à partir du fichier. Finalement, le dossier est clos.

Python3




# Program to show various ways to read and> # write data in a file.> file1>=> open>(>'myfile.txt'>,>'w'>)> L>=> [>'This is Delhi '>,>'This is Paris '>,>'This is London '>]> # is placed to indicate EOL (End of Line)> file1.write(>'Hello '>)> file1.writelines(L)> file1.close()># to change file access modes> file1>=> open>(>'myfile.txt'>,>'r+'>)> print>(>'Output of Read function is '>)> print>(file1.read())> print>()> # seek(n) takes the file handle to the nth> # byte from the beginning.> file1.seek(>0>)> print>(>'Output of Readline function is '>)> print>(file1.readline())> print>()> file1.seek(>0>)> # To show difference between read and readline> print>(>'Output of Read(9) function is '>)> print>(file1.read(>9>))> print>()> file1.seek(>0>)> print>(>'Output of Readline(9) function is '>)> print>(file1.readline(>9>))> file1.seek(>0>)> # readlines function> print>(>'Output of Readlines function is '>)> print>(file1.readlines())> print>()> file1.close()>

>

>

Sortir:

Output of Read function is  Hello  This is Delhi  This is Paris  This is London  Output of Readline function is  Hello  Output of Read(9) function is  Hello  Th Output of Readline(9) function is  Hello  Output of Readlines function is  ['Hello 
', 'This is Delhi 
', 'This is Paris 
', 'This is London 
']>

Ajout à un fichier en Python

Dans cet exemple, un fichier nommé monfichier.txt est initialement ouvert en mode écriture ('w'>) pour écrire des lignes de texte. Le fichier est ensuite rouvert en mode ajout ('a'>), et Aujourd'hui est ajouté au contenu existant. La sortie après l'ajout est affichée en utilisantreadlines>. Par la suite, le fichier est rouvert en mode écriture, écrasant le contenu par Tomorrow. La sortie finale après l'écriture est affichée en utilisantreadlines>.

Python3

java datetime locale




# Python program to illustrate> # Append vs write mode> file1>=> open>(>'myfile.txt'>,>'w'>)> L>=> [>'This is Delhi '>,>'This is Paris '>,>'This is London '>]> file1.writelines(L)> file1.close()> # Append-adds at last> file1>=> open>(>'myfile.txt'>,>'a'>)>#append mode> file1.write(>'Today '>)> file1.close()> file1>=> open>(>'myfile.txt'>,>'r'>)> print>(>'Output of Readlines after appending'>)> print>(file1.readlines())> print>()> file1.close()> # Write-Overwrites> file1>=> open>(>'myfile.txt'>,>'w'>)>#write mode> file1.write(>'Tomorrow '>)> file1.close()> file1>=> open>(>'myfile.txt'>,>'r'>)> print>(>'Output of Readlines after writing'>)> print>(file1.readlines())> print>()> file1.close()>

>

>

Sortir:

Output of Readlines after appending ['This is Delhi 
', 'This is Paris 
', 'This is London 
', 'Today 
'] Output of Readlines after writing ['Tomorrow 
']>

Article associé:

  • Objets de fichier en Python