Perché si cerca di stampare direttamente su un file invece che sys.stdout
produrre il seguente errore di sintassi:Python 2.7: Stampa su file
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 aiuto (__ builtins__) Ho le seguenti informazioni:
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.
Quindi quale sarebbe la sintassi corretta per modificare le scritture di stampa in streaming standard?
So che ci sono diversi modi forse meglio scrivere su file, ma io davvero non capisco perché questo dovrebbe essere un errore di sintassi ...
Una bella spiegazione sarebbe apprezzato!
Sei sicuro? 'print()' è la funzione built-in python 3.x, mentre 'print' è python <3.x operator. Il post mostra '2.7.2 +'. – khachik
Vieni 'da __future__ import print_function'? In Python <3, la stampa è una dichiarazione: – Ari
No! Non l'ho fatto Certo che hai ragione. Questo risolve il problema. Dannazione! Quindi la guida di stampa documentata (\ __ builtins__) è la versione futura (3.x) della stampa che ha una sintassi diversa. Grazie mille e anche a te, kachik – alex