Lecture et écriture simultanées de fichiers : un guide concis
Ouvrir un fichier exclusivement pour la lecture ou l'écriture est une tâche simple. Cependant, des situations peuvent survenir où il est nécessaire d'accéder au fichier dans les deux sens. Cet article répond à ce besoin et propose une solution pour ouvrir un fichier à la fois en lecture et en écriture.
Contexte
Tentative d'ouvrir un fichier à la fois en lecture et en écriture à l'aide du le mode traditionnel « r » ou « w » n'est pas pris en charge par la fonction open() en Python. Pour contourner le problème, on peut ouvrir le fichier en écriture, le fermer, puis le rouvrir en lecture. Ce processus répétitif peut s'avérer inefficace et peu pratique.
Solution
Python fournit une solution élégante avec le mode 'r', qui permet d'ouvrir le fichier à la fois en lecture et l'écriture. Lorsqu'il est ouvert avec ce mode, le pointeur de fichier commence au début et le fichier est tronqué à une longueur nulle s'il existe.
Utilisation
L'exemple suivant montre comment pour lire un fichier, écraser son contenu et le tronquer à la longueur appropriée sans fermer ni rouvrir :
<code class="python">with open(filename, "r+") as f: data = f.read() f.seek(0) f.write(output) f.truncate()</code>
Dans ce bloc de code, l'instruction 'with' ouvre le fichier nommé 'filename' en lecture- mode d'écriture en utilisant le drapeau 'r'. Les données du fichier sont lues à l'aide de la méthode 'read()' et stockées dans la variable 'data'.
Le pointeur de fichier est ensuite réinitialisé au début du fichier à l'aide de la méthode 'seek()'. avec un argument de 0. Cela nous permet d'écrire dans le fichier à partir du premier caractère.
La méthode 'write()' est utilisée pour écraser les données existantes avec le nouveau contenu stocké dans la 'sortie' variable. Enfin, la méthode 'truncate()' garantit que le fichier est tronqué à la position actuelle du pointeur de fichier, ce qui donne un fichier avec le contenu mis à jour depuis le début.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!