Wie kann ich in Python einen Zeilenumbruch in einer Zeichenkette angeben, so dass ich mehrere Zeilen in eine Textdatei schreiben kann?
Antworten
Zu viele Anzeigen?Einfachste Lösung
Wenn Sie nur print
ohne Argumente, wird eine leere Zeile ausgegeben.
print
Sie können die Ausgabe wie folgt in eine Datei leiten (in Ihrem Beispiel):
f = open('out.txt', 'w')
print 'First line' >> f
print >> f
print 'Second line' >> f
f.close()
Sie ist nicht nur betriebssystemunabhängig (ohne dass man die os
Paket), es ist auch besser lesbar als wenn man \n
innerhalb von Zeichenketten.
Erläuterung
En print()
Funktion hat ein optionales Schlüsselwortargument für das Ende der Zeichenkette, das end
die standardmäßig das Zeilenumbruchzeichen des Betriebssystems verwendet, z. B.. \n
. Also, wenn Sie anrufen print('hello')
druckt Python tatsächlich 'hello' + '\n'
. Das bedeutet, dass Sie beim Anrufen nur print
ohne irgendwelche Argumente, es wird tatsächlich gedruckt '' + '\n'
, was zu einem Zeilenumbruch führt.
Alternative
Verwenden Sie mehrzeilige Zeichenfolgen.
s = """First line
Second line
Third line"""
f = open('out.txt', 'w')
print s >> f
f.close()
Wie in anderen Antworten erwähnt: "Das neue Zeilenzeichen ist \n. Er wird innerhalb einer Zeichenkette verwendet".
Ich habe herausgefunden, dass die einfachste und lesbarste Methode darin besteht, die Funktion "format" zu verwenden, wobei nl als Name für eine neue Zeile verwendet wird, und die zu druckende Zeichenkette genau in das Format umzubrechen, in dem sie gedruckt werden soll:
Python 2:
print("line1{nl}"
"line2{nl}"
"line3".format(nl="\n"))
Python 3:
nl = "\n"
print(f"line1{nl}"
f"line2{nl}"
f"line3")
Das wird ausgegeben:
line1
line2
line3
Auf diese Weise wird die Aufgabe erfüllt, und auch die Lesbarkeit des Codes ist hoch :)
Es ist erwähnenswert, dass, wenn Sie eine Zeichenkette mit der interaktiven Python-Shell oder einem Jupyter-Notebook die \n
und andere Zeichenketten mit Backslashed wie \t
werden wiedergegeben buchstäblich :
>>> gotcha = 'Here is some random message...'
>>> gotcha += '\nAdditional content:\n\t{}'.format('Yet even more great stuff!')
>>> gotcha
'Here is some random message...\nAdditional content:\n\tYet even more great stuff!'
Zeilenumbrüche, Tabulatoren und andere nicht gedruckte Sonderzeichen werden als Leerzeichen wiedergegeben nur beim Drucken oder in eine Datei geschrieben:
>>> print('{}'.format(gotcha))
Here is some random message...
Additional content:
Yet even more great stuff!
6 Stimmen
Sie wissen schon, dass Pythons
print
funktioniert wieSystem.out.println
in Java, und fügt automatisch einen Zeilenumbruch nach dem Text ein, richtig?2 Stimmen
Les
print
Anweisung in Python kann auch verwendet werden, um in Dateien zu schreiben (die Details unterscheiden sich zwischen Python 2.x und Python 3.x, schauen Sie also in den Referenzdokumenten für Ihre Version nach).print
in Python 2.x -print
in Python 3.x