Estoy acostumbrado a hacer `print >>f, "hola"
Sin embargo, parece que print >>
está quedando obsoleto. ¿Cuál es la forma recomendada de hacer la línea anterior?
Actualizar:
Con respecto a todas esas respuestas con "|quot;
... ¿es esto universal o específico de Unix? IE, ¿debería estar haciendo `"\n"en Windows?
Debe utilizar la función print()
que está disponible desde Python 2.6+
from __future__ import print_function # Only needed for Python 2
print("hi there", file=f)
Para Python 3 no necesitas el import
, ya que la función print()
es la predeterminada.
La alternativa sería utilizar:
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 la documentación de Python en relación con las nuevas líneas:
En la salida, si newline es None, cualquier carácter
'\n'
escrito se traduce al separador de líneas por defecto del sistema,os.linesep
. Si la nueva línea es''
, no se realiza ninguna traducción. Si newline es cualquiera de los otros valores legales, cualquier carácter'\n'
escrito se traduce a la cadena dada.
No creo que haya una forma "correcta".
Yo usaría:
with open ('myfile', 'a') as f: f.write ('hi there\n')
In memoriam Tim Toady.