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?

489voto

Charlie Martin Points 62306

Il dépend de la précision que vous voulez avoir. \n fera généralement l'affaire. Si vous voulez vraiment faire les choses correctement, vous pouvez chercher le caractère de saut de ligne dans le paquet os. (En réalité, il s'appelle linesep.)

Remarque : lors de l'écriture dans des fichiers en utilisant l'API Python, n'utilisez pas os.linesep. Utilisez simplement \n ; Python traduit automatiquement cela en le bon caractère de saut de ligne pour votre plateforme.

107voto

python_powered Points 55

Le caractère de nouvelle ligne est \n. Il est utilisé à l'intérieur d'une chaîne de caractères.

Exemple :

    print('Première ligne \n Deuxième ligne') 

\n est le caractère de saut de ligne.

Cela produirait le résultat :

Première ligne
 Deuxième ligne

Si vous utilisez Python 2, vous n'utilisez pas les parenthèses sur la fonction print.

28voto

Homam Bahrani Points 641

Vous pouvez soit écrire dans les nouvelles lignes séparément, soit dans une seule chaîne, ce qui est plus facile.

Exemple 1

Entrée

ligne1 = "bonjour comment ça va"
ligne2 = "Je teste la séquence d'échappement de la nouvelle ligne"
ligne3 = "ça semble fonctionner"

Vous pouvez écrire le '\n' séparément :

fichier.write(ligne1)
fichier.write("\n")
fichier.write(ligne2)
fichier.write("\n")
fichier.write(ligne3)
fichier.write("\n")

Sortie

hello how are you
I am testing the new line escape sequence
this seems to work

Exemple 2

Entrée

Comme d'autres l'ont soulignés dans les réponses précédentes, placez le \n aux points pertinents de votre chaîne :

ligne = "bonjour comment ça va\nJe teste la séquence d'échappement de la nouvelle ligne\nça semble fonctionner"

fichier.write(ligne)

Sortie

hello how are you
I am testing the new line escape sequence
this seems to work

26voto

Bandham Manikanta Points 325

Rupteur de ligne indépendant de la plate-forme : Linux, Windows et iOS

import os
keyword = 'distanciation'+ os.linesep + 'physique'
imprimer(mot-clé)

Sortie:

distanciation
physique

16voto

user315582 Points 9

Voici une solution plus lisible qui fonctionnera correctement même si vous n'êtes pas à l'indentation de niveau supérieur (par exemple, dans une définition de fonction).

import textwrap
fichier.write(textwrap.dedent("""
    La vie n'est qu'une ombre qui marche, un pauvre acteur
    Qui se pavane et s'agite durant son heure sur la scène
    Et puis n'est plus entendu : c'est un conte
    Raconté par un idiot, plein de bruit et de fureur,
    Ne signifiant rien.
"""))

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