Správny spôsob zápisu riadku do súboru?

Som zvyknutý robiť print >>f, "hi there"

Zdá sa však, že print >> je už zastaraný. Aký je odporúčaný spôsob vykonania vyššie uvedeného riadku?

Update: Je to univerzálne alebo špecifické pre Unix? IE, mal by som robiť "\r\n" na Windows?

Mali by ste použiť funkciu print(), ktorá je k dispozícii od verzie Python 2.6+

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

Pre Python 3 nepotrebujete import, pretože funkcia print() je predvolená.

Alternatívou by bolo použitie:

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

Citujem z dokumentácie Pythonu ohľadom nových riadkov: Pri výstupe, ak je nový riadok None, všetky zapísané znaky '\n' sa preložia na predvolený systémový oddeľovač riadkov, os.linesep. Ak je nový riadok '', neprevedie sa žiadny preklad. Ak je newline niektorá z ostatných povolených hodnôt, všetky zapísané znaky '\n' sa preložia na daný reťazec.

Komentáre (18)

Nemyslím si, že existuje správny spôsob.

Ja by som použil:

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

In memoriam Tim Toady.

Komentáre (7)

V Pythone 3 je to funkcia, ale v Pythone 2 ju môžete pridať na začiatok zdrojového súboru:

from __future__ import print_function

Potom vykonáte

print("hi there", file=f)
Komentáre (0)