Im Vergleich zu Java (in einer Zeichenfolge) würden Sie so etwas tun "First Line\r\nSecond Line"
.
Wie würden Sie das in Python tun, um mehrere Zeilen in eine reguläre Datei zu schreiben?
python
line-breaks
file-writing
FabianCook
quelle
quelle
print
wieSystem.out.println
in Java funktioniert und fügen nach dem Text automatisch eine neue Zeile hinzu, oder?print
Anweisung in Python kann auch zum Schreiben in Dateien verwendet werden (die Details unterscheiden sich zwischen Python 2.x und Python 3.x, überprüfen Sie daher die Referenzdokumente für Ihre Version).print
in Python 2.x -print
in Python 3.xAntworten:
Es hängt davon ab, wie korrekt Sie sein möchten.
\n
wird in der Regel den Job machen. Wenn Sie es wirklich richtig machen möchten, schlagen Sie das Zeilenumbruchzeichen imos
Paket nach . (Es heißt eigentlichlinesep
.)Hinweis: Verwenden Sie beim Schreiben in Dateien mit der Python-API nicht die
os.linesep
. Verwenden Sie einfach\n
; Python übersetzt dies automatisch in das richtige Zeilenumbruchzeichen für Ihre Plattform.quelle
"\r\n"
. Das heißt, dasos.linesep
wird sein"\r\n"
. Wenn Sie im Textmodus in eine Datei schreiben, wird beim Schreiben eine Zeilenumbruchübersetzung ausgeführt. Das heißt, jeder"\n"
in der Ausgabe wird"\r\n"
in die resultierende Datei übersetzt. Sie können sehen, dass dies ein Problem ist, wenn der Text, den Sie schreiben, bereits"\r\n"
Sequenzen enthält : Das Ergebnis befindet sich"\r\r\n"
am Ende jeder Zeile. Ich nehme zumindest an: Ich habe es nicht wirklich versucht.os.linesep
Vorschlag zu entfernen , nein? Es wäre kein großes Drama und der Stolz des Autors würde nicht viel leiden, glaube ichlinesep
es da ist und existiert, damit Sie herausfinden können, was das Systemzeilentrennzeichen ist.linesep
kann immer noch nützlich sein.Das neue Zeilenzeichen ist
\n
. Es wird in einer Zeichenfolge verwendet.Beispiel:
Wo
\n
ist das Zeilenumbruchzeichen?Dies würde das Ergebnis ergeben:
Wenn Sie Python 2 verwenden, verwenden Sie die Klammern in der Druckfunktion nicht.
quelle
Sie können die neuen Zeilen entweder separat oder innerhalb einer einzelnen Zeichenfolge schreiben, was einfacher ist.
Beispiel 1
Eingang
Sie können das '\ n' separat schreiben:
Ausgabe
Beispiel 2
Eingang
Platzieren Sie, wie andere in den vorherigen Antworten ausgeführt haben, das \ n an den relevanten Punkten in Ihrer Zeichenfolge:
Ausgabe
quelle
Wenn Sie mehrere Textzeilen gleichzeitig eingeben, ist dies das am besten lesbare Format.
Das \ am Ende jeder Zeile wird aus der neuen Zeile entfernt (was einen Fehler verursachen würde).
quelle
In Python können Sie einfach das Zeilenumbruchzeichen verwenden, d. H.
\n
quelle
Einfachste Lösung
Wenn Sie nur
print
ohne Argumente aufrufen , wird eine leere Zeile ausgegeben.Sie können die Ausgabe an eine Datei wie diese weiterleiten (anhand Ihres Beispiels):
Es ist nicht nur OS-unabhängig (ohne das
os
Paket verwenden zu müssen), sondern auch besser lesbar als das Einfügen von\n
Zeichenfolgen.Erläuterung
Die
print()
Funktion verfügt über ein optionales Schlüsselwortargument für das Ende der aufgerufenen Zeichenfolgeend
, das standardmäßig das Zeilenumbruchzeichen des Betriebssystems verwendet, z.\n
. Wenn Sie anrufenprint('hello')
, druckt Python tatsächlich'hello' + '\n'
. Das heißt, wenn Sie nurprint
ohne Argumente aufrufen , wird tatsächlich gedruckt'' + '\n'
, was zu einer neuen Zeile führt.Alternative
Verwenden Sie mehrzeilige Zeichenfolgen.
quelle
Plattformunabhängiger Zeilenumbruch: Linux, Windows & IOS
Ausgabe:
quelle
Genauso wie mit
'\n'
, obwohl Sie das wahrscheinlich nicht brauchen würden'\r'
. Gibt es einen Grund, warum Sie es in Ihrer Java-Version haben? Wenn Sie es brauchen / wollen, können Sie es auch in Python auf die gleiche Weise verwenden.quelle
\r
ist Wagenrücklauf, wenn Sie die Systemeigenschaft für neue Zeile erhalten, erscheint sie als\r\n
\n
ist dies das einzige Zeilenumbruchzeichen.\n
. Mac OS X.\ n - Das einfache Einfügen von Zeilenumbrüchen funktioniert:
quelle
Die meisten Escape-Zeichen in String-Literalen aus Java sind auch in Python gültig, z. B. "\ r" und "\ n".
quelle
Wie in anderen Antworten erwähnt: "Das neue Zeilenzeichen ist \ n. Es wird in einer Zeichenfolge verwendet."
Ich fand, dass der einfachste und lesbarste Weg darin besteht, die Funktion "Format" zu verwenden, wobei nl als Name für die neue Zeile verwendet wird, und die zu druckende Zeichenfolge in das genaue Format zu unterbrechen, in dem Sie sie drucken möchten:
Das wird ausgegeben:
Auf diese Weise führt es die Aufgabe aus und bietet auch eine hohe Lesbarkeit des Codes :)
quelle
\ n trennt die Zeilen einer Zeichenfolge. Im folgenden Beispiel schreibe ich die Datensätze in einer Schleife. Jeder Datensatz wird durch getrennt
\n
.quelle
Beachten Sie, dass beim Überprüfen einer Zeichenfolge mithilfe der interaktiven Python-Shell oder eines Jupyter-Notizbuchs die
\n
und andere Zeichenfolgen mit umgekehrten Schrägstrichen buchstäblich\t
gerendert werden :Die Zeilenumbrüche, Tabulatoren und anderen nicht gedruckten Sonderzeichen werden nur beim Drucken oder Schreiben in eine Datei als Leerzeichen gerendert :
quelle