Préparation inplace au début d'un fichier
Lorsque vous essayez d'ajouter une ligne au début d'un fichier à l'aide du mode d'ajout (' a'), les utilisateurs peuvent rencontrer une écriture indésirable à la fin du fichier en raison du fait que le pointeur de fichier avance automatiquement vers la fin.
Pour surmonter cette limitation et vraiment ajouter une ligne au début du fichier, plusieurs méthodes peuvent être utilisées :
Méthode 1 : Lire et réécrire le fichier
Si le chargement de l'intégralité du fichier en mémoire est réalisable, la fonction suivante peut être utilisée :
<code class="python">def line_prepender(filename, line): with open(filename, 'r+') as f: content = f.read() f.seek(0, 0) f.write(line.rstrip('\r\n') + '\n' + content)</code>
Cette approche charge le contenu du fichier dans le contenu variable, permettant à la ligne d'être ajoutée au début et au contenu modifié d'être réécrit au début du fichier.
Méthode 2 : Utilisation de l'entrée de fichier Module
Une approche alternative consiste à utiliser le module fileinput :
<code class="python">def line_pre_adder(filename, line_to_prepend): f = fileinput.input(filename, inplace=1) for xline in f: if f.isfirstline(): print line_to_prepend.rstrip('\r\n') + '\n' + xline, else: print xline,</code>
Cette méthode parcourt les lignes du fichier et, lorsqu'elle rencontre la première ligne, y ajoute la ligne spécifiée avant imprimer les deux lignes.
Le mécanisme exact de cette méthode n'est pas tout à fait clair, mais elle permet une édition sur place du fichier sans avoir besoin de charger l'intégralité du contenu en mémoire, ce qui la rend potentiellement adaptée aux fichiers plus volumineux.
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!