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!

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top