Supposons que vous souhaitiez ajouter une ligne au début d'un fichier, mais en utilisant le mode d'ajout standard dans Python, la ligne est ajoutée à la fin du fichier. Comment pouvez-vous y parvenir ?
Mise en œuvre
Il existe deux façons d'y parvenir :
1ère voie (mémoire intensive) :
<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>
Dans cette méthode, le fichier entier est lu en mémoire, une ligne est ajoutée au début, puis le contenu modifié est réécrit dans le fichier.
2ème méthode (Streaming) :
<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, end='') else: print(xline, end='')</code>
Cette méthode diffuse le fichier ligne par ligne, écrasant le fichier d'origine. Il utilise le module fileinput pour parcourir les lignes et insère la ligne donnée au début de la première ligne.
Le choix de la méthode dépend de la taille du fichier et de la mémoire disponible. La 2ème méthode est préférable pour les fichiers volumineux afin d'éviter les problèmes de mémoire.
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!