Par rapport à Java (dans une chaîne), vous feriez quelque chose comme "First Line\r\nSecond Line"
.
Alors, comment feriez-vous cela en Python, pour écrire plusieurs lignes dans un fichier normal?
Cela dépend de la façon dont vous voulez être correct. \n
fera généralement le travail. Si vous voulez vraiment bien faire les choses, vous recherchez le caractère de nouvelle ligne dans le package os
. (Il s’appelle en fait linesep
.)
Remarque: lorsque vous écrivez dans des fichiers à l'aide de l'API Python, n'utilisez pas os.linesep
. Il suffit d'utiliser \n
; Python traduit automatiquement cela en caractère de nouvelle ligne approprié pour votre plate-forme.
Le nouveau caractère de ligne est \n
. Il est utilisé à l'intérieur d'une chaîne.
Exemple:
print 'First line \n Second line'
où \n
est le caractère de nouvelle ligne.
Cela donnerait le résultat:
First line
Second line
Vous pouvez écrire les nouvelles lignes séparément ou dans une seule chaîne, ce qui est plus facile.
line1 = "hello how are you"
line2 = "I am testing the new line escape sequence"
line3 = "this seems to work"
Vous pouvez écrire le '\ n' séparément:
file.write(line1)
file.write("\n")
file.write(line2)
file.write("\n")
file.write(line3)
file.write("\n")
hello how are you
I am testing the new line escape sequence
this seems to work
Comme d'autres l'ont souligné dans les réponses précédentes, placez le\n aux points appropriés de votre chaîne:
line = "hello how are you\nI am testing the new line escape sequence\nthis seems to work"
file.write(line)
hello how are you
I am testing the new line escape sequence
this seems to work
Dans Python, vous pouvez simplement utiliser le caractère de nouvelle ligne, c'est-à-dire \n
Si vous entrez plusieurs lignes de texte à la fois, je trouve que c'est le format le plus lisible.
file.write("\
Life's but a walking shadow, a poor player\n\
That struts and frets his hour upon the stage\n\
And then is heard no more: it is a tale\n\
Told by an idiot, full of sound and fury,\n\
Signifying nothing.\n\
")
Le\à la fin de chaque ligne échappe à la nouvelle ligne (ce qui provoquerait une erreur).
Si vous appelez uniquement print
sans aucun argument, une ligne vide sera générée.
print
Vous pouvez diriger la sortie vers un fichier comme celui-ci (en prenant pour exemple):
f = open('out.txt', 'w')
print 'First line' >> f
print >> f
print 'Second line' >> f
f.close()
Non seulement il est indépendant du système d'exploitation (sans même avoir à utiliser le paquetage os
), il est également plus lisible que de mettre \n
dans des chaînes.
La fonction print()
possède un mot-clé facultatif pour la fin de la chaîne, appelé end
, qui utilise par défaut le caractère de nouvelle ligne du système d'exploitation, par exemple. \n
. Ainsi, lorsque vous appelez print('hello')
, Python est en train d’imprimer 'hello' + '\n'
. Ce qui signifie que lorsque vous appelez simplement print
sans aucun argument, vous imprimez en fait '' + '\n'
, ce qui entraîne une nouvelle ligne.
Utilisez des chaînes multi-lignes.
s = """First line
Second line
Third line"""
f = open('out.txt', 'w')
print s >> f
f.close()
\ n - l'insertion de caractères de nouvelle ligne simples fonctionne:
# Here's the test example - string with newline char :
In [36]: test_line = "Hi!!!\n testing first line.. \n testing second line.. \n and third line....."
# Output:
In [37]: print(test_line)
Hi!!!
testing first line..
testing second line..
and third line.....
De la même manière avec '\n'
, bien que vous n’ayez probablement pas besoin de '\r'
. Y a-t-il une raison pour laquelle vous l'avez dans votre version Java? Si vous en avez besoin/voulez, vous pouvez également l’utiliser de la même manière dans Python.
La plupart des caractères d'échappement des chaînes de caractères de Java sont également valides en Python, tels que "\ r", "\ n"