Forma correcta de escrever linha para ficheiro?

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.

Comentários (18)

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.

Comentários (7)

Em Python 3 é uma função, mas em Python 2 você pode adicionar isto ao topo do arquivo fonte:

from __future__ import print_function

Então você faz

print("hi there", file=f)
Comentários (0)