Modo corretto di scrivere la linea nel file?

Sono abituato a fare print >f, "ciao"

Tuttavia, sembra che print >> stia diventando deprecato. Qual è il modo raccomandato per fare la linea sopra?

Update: Per quanto riguarda tutte quelle risposte con "\n"...è universale o specifico di Unix? IE, dovrei fare "\r\n" su Windows?

Dovresti usare la funzione print() che è disponibile da Python 2.6+

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

Per Python 3 non c'è bisogno di import, poiché la funzione print() è quella predefinita.

L'alternativa sarebbe usare

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

Citando da documentazione Python riguardo ai newline: In uscita, se newline è None, qualsiasi carattere scritto 'n'viene tradotto nel separatore di linea predefinito del sistema, os.linesep. Se newline è '', non avviene alcuna traduzione. Se newline è uno qualsiasi degli altri valori legali, qualsiasi carattere scritto 'n' viene tradotto nella stringa data.

Commentari (18)

Non credo che ci sia un modo "corretto".

Io userei:

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

In memoriam Tim Toady.

Commentari (7)

In Python 3 è una funzione, ma in Python 2 si può aggiungere all'inizio del file sorgente:

from __future__ import print_function

Poi fate

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