Ich möchte bei jedem Anruf eine neue Zeile an meine Zeichenfolge anhängen file.write()
. Was ist der einfachste Weg, dies in Python zu tun?
259
Verwenden Sie "\ n":
file.write("My String\n")
Weitere Informationen finden Sie im Python-Handbuch .
file.write(f"{var1}\n")
Sie können dies auf zwei Arten tun:
oder, abhängig von Ihrer Python-Version (2 oder 3):
quelle
Sie können verwenden:
quelle
file.write(f"my number is: {number}\n")
ist gut und lesbar.Wenn Sie es häufig verwenden (viele geschriebene Zeilen), können Sie 'Datei' in Unterklassen unterteilen:
Jetzt bietet es eine zusätzliche Funktion, die macht, was Sie wollen:
Vielleicht fehlen mir so etwas wie verschiedene Zeilenumbrüche (\ n, \ r, ...) oder dass die letzte Zeile auch mit einem Zeilenumbruch abgeschlossen wird, aber das funktioniert bei mir.
quelle
return None
Dies ist in diesem Fall nicht erforderlich, da erstens Sie es nicht benötigen und zweitens jede Python-FunktionNone
standardmäßig zurückgegeben wird, wenn keinereturn
Anweisung vorhanden ist.du könntest es tun:
Wie in einer anderen Antwort vorgeschlagen, aber warum sollten Sie die Verkettung von Zeichenfolgen (langsam, fehleranfällig) verwenden, wenn Sie
file.write
zweimal aufrufen können :Beachten Sie, dass Schreibvorgänge gepuffert sind, sodass es sich um dasselbe handelt.
quelle
oder
quelle
Nur eine Notiz,
file
wird in nicht unterstütztPython 3
und wurde entfernt. Sie können dasselbe mit deropen
eingebauten Funktion tun .quelle
Verwenden Sie print, es sei denn, Sie schreiben in Binärdateien. Das folgende Beispiel eignet sich zum Formatieren von CSV-Dateien:
Verwendung:
Anmerkungen:
'{}, {}'.format(1, 'the_second')
- https://pyformat.info/ , PEP-3101*columns
in der Funktionsdefinition - sendet eine beliebige Anzahl von Argumenten zur Liste - siehe Frage zu * args & ** kwargsquelle
Eine andere Lösung, die mit fstring aus einer Liste schreibt
quelle
Dies ist die Lösung, die ich gefunden habe, um dieses Problem für mich selbst zu lösen und systematisch \ n als Trennzeichen zu erzeugen. Es wird mit einer Liste von Zeichenfolgen geschrieben, wobei jede Zeichenfolge eine Zeile der Datei ist. Es scheint jedoch, dass dies auch für Sie funktioniert. (Python 3. +)
quelle
with open(path, "w") as file: for line in strList: file.write(line + "\n")
? Auf diese Weise können Sie alle Listenarbeiten und Überprüfungen entfernen und haben nur 3 Zeilen.