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.
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.