410 votes

Comment puis-je spécifier de nouvelles lignes dans une chaîne afin d'écrire plusieurs lignes dans un fichier?

Comment puis-je indiquer un saut de ligne dans une chaîne en Python, de sorte que je puisse écrire plusieurs lignes dans un fichier texte?

1voto

muntoo Points 4905

Diverses méthodes équivalentes

Utilisation de print

print ajoute déjà automatiquement une nouvelle ligne !

with open("out.txt", "w") as f:
    print("Premier", file=f)
    print("Deuxième", file=f)

De manière équivalente :

with open("out.txt", "w") as f:
    print("Premier\nDeuxième", file=f)

Pour print sans ajouter automatiquement une nouvelle ligne, utilisez sep="" (puisque sep="\n" est la valeur par défaut) :

with open("out.txt", "w") as f:
    print("Premier\nDeuxième\n", sep="", file=f)

Utilisation de f.write

Pour les fichiers ouverts en mode texte :

with open("out.txt", "w") as f:
    f.write("Premier\nDeuxième\n")

Pour les fichiers ouverts en mode binaire, les fichiers seront écrits sans traduction automatique de \n vers le séparateur de ligne spécifique à la plateforme. Pour imposer le caractère de nouvelle ligne pour la plateforme actuelle, utilisez os.linesep au lieu de \n :

with open("out.txt", "wb") as f:
    f.write("Premier" + os.linesep)
    f.write("Deuxième" + os.linesep)

Fichier de sortie

Visuellement :

Premier
Deuxième

Sur Linux, les nouvelles lignes seront séparées par \n :

Premier\nDeuxième\n

Sous Windows, les nouvelles lignes seront séparées par \r\n :

Premier\r\nDeuxième\r\n

Pour éviter la traduction automatique de \n en \r\n pour les fichiers ouverts en mode texte, ouvrez le fichier en utilisant open("out.txt", "w", newline="\n").

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