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!
python
file
python-2.7
Alex
quelle
quelle
print()
ist die in Python 3.x integrierte Funktion, während derprint
Operator Python <3.x ist. Der Beitrag zeigt2.7.2+
.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).Antworten:
Wenn Sie die
print
Funktion in Python 2 verwenden möchten , müssen Sie Folgendes importieren__future__
:Sie können den gleichen Effekt aber auch ohne Verwendung der Funktion erzielen:
quelle
print ist ein Schlüsselwort in Python 2.X. Sie sollten Folgendes verwenden:
quelle
print(args, file=f1)
ist die Python 3.x-Syntax. Für Python 2.x verwendenprint >> f1, args
.quelle
from __future__ import print_function
. Dann können Sie die klare Notation in Python 2 und 3 verwenden.AttributeError: 'str' object has no attribute 'write'
mit Ihrer Python3-Syntaxf1 = open('path_to_your_file', 'w')
Sie können die Druckanweisung in eine Datei exportieren, ohne den Code zu ändern. Öffnen Sie einfach ein Terminalfenster und führen Sie Ihren Code folgendermaßen aus:
quelle
Dadurch wird Ihre Druckausgabe in eine Datei umgeleitet:
quelle
In Python 3.0+
print
ist eine Funktion , mit der Sie aufrufen würdenprint(...)
. In einer früheren Versionprint
ist eine Aussage , mit der Sie machen würdenprint ...
.Um in eine Datei in Python vor 3.0 zu drucken, gehen Sie wie folgt vor:
Der
>>
Bediener leitet den Druck in die Dateif
.quelle