Por que tentar imprimir diretamente em um arquivo em vez de sys.stdout
produzir o seguinte erro de sintaxe:
Python 2.7.2+ (default, Oct 4 2011, 20:06:09)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> f1=open('./testfile', 'w+')
>>> print('This is a test', file=f1)
File "<stdin>", line 1
print('This is a test', file=f1)
^
SyntaxError: invalid syntax
Da ajuda (__ builtins__), tenho as seguintes informações:
print(...)
print(value, ..., sep=' ', end='\n', file=sys.stdout)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
Então, qual seria a sintaxe certa para alterar as gravações de impressão de fluxo padrão?
Eu sei que existem diferentes maneiras talvez melhores de gravar em um arquivo, mas eu realmente não entendo por que isso deve ser um erro de sintaxe ...
Uma boa explicação seria apreciada!
from __future__ import print_function
? Em Python <3, imprimir é uma declaração:
help(__builtins__)
exibir isso é um bug.
__builtins__.__dict__['print'](value, file=f1)
não funciona, embora).
print()
é a função integrada python 3.x, enquantoprint
é o operador python <3.x. O post mostra2.7.2+
.