425 Stimmen

Zeichenkette jedes Mal in einer neuen Zeile in eine Datei schreiben

Ich möchte jedes Mal einen Zeilenumbruch an meinen String anhängen, wenn ich file.write() . Wie lässt sich dies in Python am einfachsten bewerkstelligen?

477voto

halfdan Punkte 32370

Verwendung " \n ":

file.write("My String\n")

Véase das Python-Handbuch als Referenz.

166voto

Greg Hewgill Punkte 882617

Sie können dies auf zwei Arten tun:

f.write("text to write\n")

oder, abhängig von Ihrer Python-Version (2 oder 3):

print >>f, "text to write"         # Python 2.x
print("text to write", file=f)     # Python 3.x

113voto

Krishna K Punkte 1755

Sie können verwenden:

file.write(your_string + '\n')

39voto

mathause Punkte 1418

Wenn Sie es ausgiebig nutzen (viele geschriebene Zeilen), können Sie die Unterklasse 'file' verwenden:

class cfile(file):
    #subclass file to have a more convienient use of writeline
    def __init__(self, name, mode = 'r'):
        self = file.__init__(self, name, mode)

    def wl(self, string):
        self.writelines(string + '\n')

Jetzt bietet es eine zusätzliche Funktion wl, die das tut, was Sie wollen:

with cfile('filename.txt', 'w') as fid:
    fid.wl('appends newline charachter')
    fid.wl('is written on a new line')

Vielleicht übersehe ich etwas wie verschiedene Zeilenumbrüche ( \n , \r , ...) oder dass die letzte Zeile ebenfalls mit einem Zeilenumbruch abgeschlossen wird, aber bei mir funktioniert es.

25voto

Jean-François Fabre Punkte 131296

Könnten Sie tun:

file.write(your_string + '\n')

wie in einer anderen Antwort vorgeschlagen, aber warum sollte man die String-Verkettung (langsam, fehleranfällig) verwenden, wenn man file.write zweimal:

file.write(your_string)
file.write("\n")

Beachten Sie, dass Schreibvorgänge gepuffert werden, so dass es auf das Gleiche hinausläuft.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X