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