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

Comment ajouter une ligne au début d'un fichier en Python ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-02 10:50:30507parcourir

How to Prepend a Line to the Beginning of a File in Python?

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!

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