358 votes

Écriture d'une chaîne de caractères dans un fichier sur une nouvelle ligne à chaque fois

Je veux ajouter une nouvelle ligne à ma chaîne chaque fois que j'appelle file.write() . Quel est le moyen le plus simple de faire cela en Python ?

402voto

halfdan Points 16440

Utiliser " \n " :

file.write("My String\n")

Voir le manuel Python pour référence.

144voto

Greg Hewgill Points 356191

Vous pouvez le faire de deux manières :

f.write("text to write\n")

ou, en fonction de votre version de Python (2 ou 3) :

print >>f, "text to write"         # Python 2.x
print("text to write", file=f)     # Python 3.x

93voto

Krishna K Points 552

Vous pouvez utiliser :

file.write(your_string + '\n')

33voto

Thethos Points 11

Si vous en faites un usage intensif (beaucoup de lignes écrites), vous pouvez sous-classer 'file' :

class cfile(file):
    #subclass file to have a more convienient use of writeline
    def __init__(self, name, mode = 'r'):
        self = file.__init__(self, name, mode)

    def wl(self, string):
        self.writelines(string + '\n')

Il offre maintenant une fonction supplémentaire wl qui fait ce que vous voulez :

with cfile('filename.txt', 'w') as fid:
    fid.wl('appends newline charachter')
    fid.wl('is written on a new line')

Peut-être que je manque quelque chose comme des caractères de nouvelle ligne différents ( \n , \r ...) ou que la dernière ligne soit également terminée par une nouvelle ligne, mais cela fonctionne pour moi.

15voto

Jean-François Fabre Points 94672

Que vous pourriez faire :

file.write(your_string + '\n')

comme suggéré par une autre réponse, mais pourquoi utiliser la concaténation de chaînes (lente, sujette aux erreurs) quand on peut appeler file.write deux fois :

file.write(your_string)
file.write("\n")

Notez que les écritures sont mises en mémoire tampon, ce qui revient au même.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X