Wie schreibt man eine Zeile richtig in eine Datei?

Ich bin es gewohnt, print >>f, "hallo da" zu machen.

Es scheint jedoch, dass print >> veraltet ist. Was ist der empfohlene Weg, um die obige Zeile auszuführen?

Update: Bezüglich all dieser Antworten mit "\n"... ist das universell oder Unix-spezifisch? IE, sollte ich "\r\n" unter Windows machen?

Sie sollten die Funktion print() verwenden, die seit Python 2.6+ verfügbar ist

from __future__ import print_function  # Only needed for Python 2
print("hi there", file=f)

Für Python 3 brauchen Sie den import nicht, da die print() Funktion der Standard ist.

Die Alternative wäre die Verwendung:

f = open('myfile', 'w')
f.write('hi there\n')  # python will convert \n to os.linesep
f.close()  # you can omit in most cases as the destructor will call it

Ich zitiere aus der Python-Dokumentation bezüglich Zeilenumbrüchen:

Bei der Ausgabe, wenn newline None ist, werden alle geschriebenen '\n' Zeichen in das Standard-Zeilentrennzeichen des Systems, os.linesep, übersetzt. Wenn newline '' ist, findet keine Übersetzung statt. Wenn newline einer der anderen zulässigen Werte ist, werden alle geschriebenen `'\n'-Zeichen in die angegebene Zeichenfolge übersetzt.

Kommentare (18)

Ich glaube nicht, dass es einen "richtigen" Weg gibt.

Ich würde verwenden:

with open ('myfile', 'a') as f: f.write ('hi there\n')

In memoriam Tim Toady.

Kommentare (7)

In Python 3 ist es eine Funktion, aber in Python 2 können Sie dies am Anfang der Quelldatei hinzufügen:

from __future__ import print_function

Dann macht man

print("hi there", file=f)
Kommentare (0)