Python 2.7: Drucken zur Datei drucken
-
26-10-2019 - |
Frage
Warum versucht der Versuch, direkt in eine Datei statt zu drucken? sys.stdout
Erstellen Sie den folgenden Syntaxfehler:
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 Hilfe (__ gebaut) Ich habe die folgenden Informationen:
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 den Standard -Stream -Print -Schreibdruck zu ändern?
Ich weiß, dass es verschiedene vielleicht bessere Möglichkeiten gibt, in Datei zu schreiben, aber ich verstehe wirklich nicht, warum dies ein Syntaxfehler sein sollte ...
Eine schöne Erklärung wäre geschätzt!
Lösung
Wenn Sie das verwenden möchten print
Funktion in Python 2, Sie müssen importieren __future__
:
from __future__ import print_function
Sie können jedoch auch den gleichen Effekt haben, ohne die Funktion zu verwenden:
print >>f1, 'This is a test'
Andere Tipps
Druck ist ein Schlüsselwort in Python 2.x. Sie sollten Folgendes verwenden:
f1=open('./testfile', 'w+')
f1.write('This is a test')
f1.close()
print(args, file=f1)
ist die Python 3.x -Syntax. Für Python 2.x verwenden Sie print >> f1, args
.
Sie können die Druckanweisung in Datei exportieren, ohne einen Code zu ändern. Öffnen Sie einfach ein Terminalfenster und führen Sie Ihren Code auf diese Weise aus:
python yourcode.py >> log.txt
Dadurch wird Ihre Ausgabe "Druck" in eine Datei umgeleitet:
import sys
sys.stdout = open("file.txt", "w+")
print "this line will redirect to file.txt"
In Python 3.0+, print
ist ein Funktion, mit dem Sie anrufen würden print(...)
. In früherer Version, print
ist ein Aussage, mit dem du machen würdest, mit dem du machen würdest print ...
.
Um zu einer Datei in Python früher als 3.0 zu drucken, würden Sie:
print >> f, 'what ever %d', i
Das >>
Der Bediener leitet den Druck zur Datei aus f
.