¿Por qué tratar de imprimir directamente a un archivo en lugar de sys.stdout
producir el error siguiente sintaxis:Python 2.7: Imprimir en un archivo
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 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 tal vez mejores formas de escribir en el archivo, pero realmente no entiendo por qué esto debe ser un error de sintaxis ...
Una explicación agradable sería apreciada!
¿Seguro? 'print()' es la función incorporada de python 3.x, mientras que 'print' es el operador de python <3.x. La publicación muestra '2.7.2 +'. – khachik
¿'de __future__ import print_function'? En Python <3, imprimir es una declaración: – Ari
¡No! No lo hice. Por supuesto que tienes razón Eso resuelve el problema. ¡Maldición! Entonces la impresión documentada en ayuda (\ __ builtins__) es la versión futura (3.x) de la impresión que tiene una sintaxis diferente. Muchas gracias y usted también, kachik – alex