Maison >développement back-end >Tutoriel Python >Comment puis-je ajouter efficacement une ligne au début d'un fichier en Python ?

Comment puis-je ajouter efficacement une ligne au début d'un fichier en Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-03 05:25:32765parcourir

How Can I Efficiently Add a Line to the Beginning of a File in Python?

Ajouter une ligne au début d'un fichier

Modifier le début d'un fichier peut être difficile, surtout si le fichier est volumineux. Traditionnellement, un fichier distinct était utilisé comme solution de contournement. Cependant, il existe des moyens plus efficaces d'y parvenir en utilisant Python.

Comprendre les modes de fichier

Lors de l'ouverture d'un fichier en mode ajout (« a »), toute écriture est dirigé vers la fin du fichier, quelle que soit la position actuelle du pointeur de fichier. Ceci est problématique lorsque l'on tente de modifier le début du fichier.

Solution 1 : Charger le fichier en mémoire

Pour les fichiers plus petits pouvant être chargés en mémoire, le L'extrait de code suivant peut être utilisé :

<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 méthode lit l'intégralité du fichier en mémoire, ajoute la nouvelle ligne au début et réécrit le fichier.

Solution 2 : Utilisation de fileinput

Pour les fichiers plus volumineux, le module fileinput peut être utile :

<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 est plus efficace pour les fichiers volumineux car elle ne charge pas l'intégralité du fichier en mémoire. Il parcourt le fichier ligne par ligne, imprimant la nouvelle ligne au début de la première ligne, puis les lignes restantes sans modification. Notez que cette méthode nécessite que le fichier soit accessible en écriture.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn