I'm habituado a fazer print >>f, "olá lá"
No entanto, parece que print >>
está sendo depreciado. Qual é a forma recomendada de fazer a linha acima?
Update:
Em relação a todas essas respostas com "\n"
...isto é universal ou específico do Unix? IE, eu deveria estar fazendo "\r\n"
no Windows?
Você deve utilizar a função print()
que está disponível desde Python 2.6+
from __future__ import print_function # Only needed for Python 2
print("hi there", file=f)
Para Python 3 você não precisa da "importação", já que a função "imprimir()`é o padrão.
A alternativa seria usar:
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
Citação de Documentação Python sobre novas linhas:
Na saída, se a nova linha é Nenhuma, quaisquer
'\n'
caracteres escritos são traduzidos para o separador de linhas padrão do sistema,os.linesep''. Se newline for
'', nenhuma tradução será feita. Se newline é qualquer um dos outros valores legais, quaisquer
'\n'` caracteres escritos são traduzidos para a string dada.
Eu não acho que haja uma maneira "correta".
Eu usaria:
with open ('myfile', 'a') as f: f.write ('hi there\n')
In memoriam Tim Toady.