¿Por qué intentar imprimir directamente en un archivo en lugar de sys.stdout
producir el siguiente error de sintaxis?
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
De la ayuda (__ builtins__) tengo la siguiente información:
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.
Entonces, ¿cuál sería la sintaxis correcta para cambiar las escrituras de impresión de flujo estándar?
Sé que hay diferentes formas, tal vez mejores, de escribir en un archivo, pero realmente no entiendo por qué debería ser un error de sintaxis ...
¡Se agradecería una buena explicación!
from __future__ import print_function
? En Python <3, print es una declaración:
help(__builtins__)
mostrar eso es un error.
__builtins__.__dict__['print'](value, file=f1)
funciona, sin embargo).
print()
es la función incorporada de python 3.x, mientras que elprint
operador python <3.x. La publicación muestra2.7.2+
.