Warum wird versucht, direkt in eine Datei zu drucken, anstatt sys.stdout
den folgenden Syntaxfehler zu erzeugen:
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
Von der Hilfe (__ builtins__) habe ich folgende Infos:
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.
Was wäre also die richtige Syntax, um die Standard-Stream-Print-Schreibvorgänge zu ändern?
Ich weiß, dass es verschiedene, vielleicht bessere Möglichkeiten gibt, in eine Datei zu schreiben, aber ich verstehe wirklich nicht, warum dies ein Syntaxfehler sein sollte ...
Eine nette Erklärung wäre dankbar!
from __future__ import print_function
? In Python <3 ist print eine Aussage:
help(__builtins__)
anzuzeigen ist ein Fehler.
__builtins__.__dict__['print'](value, file=f1)
funktioniert jedoch).
print()
ist die in Python 3.x integrierte Funktion, während derprint
Operator Python <3.x ist. Der Beitrag zeigt2.7.2+
.