Poprawny sposób zapisu linii do pliku?

I'm used to doing print >>f, "hi there".

Wydaje się jednak, że print >> jest coraz bardziej zdeprecjonowany. Jaki jest zalecany sposób na wykonanie powyższej linii?

Update: Jeśli chodzi o wszystkie te odpowiedzi z "\n"...czy jest to uniwersalne lub specyficzne dla Uniksa? IE, czy powinienem robić "ą" w systemie Windows?

Powinieneś użyć funkcji print(), która jest dostępna od wersji Pythona 2.6+.

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

Dla Pythona 3 nie potrzebujesz importu, ponieważ funkcja print() jest domyślna.

Alternatywą byłoby użycie:

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

Cytaty z dokumentacji Pythona dotyczące nowych linii:

Na wyjściu, jeśli newline jest None, wszelkie '' napisane znaki są tłumaczone na systemowy domyślny separator linii, os.linesep. Jeśli nową linią jest '', to tłumaczenie nie jest wykonywane. Jeśli newline jest dowolną z pozostałych legalnych wartości, to wszelkie `'∗ napisane znaki są tłumaczone na podany łańcuch.

Komentarze (18)

Nie sądzę, że istnieje "prawidłowy" sposób.

Ja bym użył:

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

In memoriam Tim Toady.

Komentarze (7)

W Pythonie 3 jest to funkcja, ale w Pythonie 2 możesz dodać to na górze pliku źródłowego:

from __future__ import print_function

Następnie wykonujesz

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