Ich habe gesucht und kann nur umgekehrt Fragen finden: Schreiben von stdin in eine Datei :)
Gibt es eine schnelle und einfache Möglichkeit, den Inhalt einer Datei in stdout zu speichern?
Ich habe gesucht und kann nur umgekehrt Fragen finden: Schreiben von stdin in eine Datei :)
Gibt es eine schnelle und einfache Möglichkeit, den Inhalt einer Datei in stdout zu speichern?
Antworten:
Sicher. Angenommen, Sie haben eine Zeichenfolge mit dem Namen der Datei fname, führt der folgende Trick aus.
with open(fname, 'r') as fin:
print(fin.read())
print(fin.read(), end=""). Um diese Lösung unter Python 2 nutzen zu können, ist ein Präfix from __future__ import print_functionerforderlich. Natürlich sollten Python 2-Anwendungen ohnehin immer die Python 3- print()Funktion verwenden - das ist also keine große Belastung.
Wenn es sich um eine große Datei handelt und Sie nicht viel Speicherplatz verbrauchen möchten, wie dies bei Bens Lösung der Fall sein könnte, wird der zusätzliche Code hinzugefügt
>>> import shutil
>>> import sys
>>> with open("test.txt", "r") as f:
... shutil.copyfileobj(f, sys.stdout)
funktioniert auch.
f = open('file.txt', 'r')
print f.read()
f.close()
Von http://docs.python.org/tutorial/inputoutput.html
Um den Inhalt einer Datei zu lesen, rufen Sie f.read (Größe) auf, das eine bestimmte Datenmenge liest und als Zeichenfolge zurückgibt. Größe ist ein optionales numerisches Argument. Wenn die Größe weggelassen oder negativ ist, wird der gesamte Inhalt der Datei gelesen und zurückgegeben. Es ist Ihr Problem, wenn die Datei doppelt so groß ist wie der Speicher Ihres Computers. Andernfalls werden höchstens Bytes gelesen und zurückgegeben. Wenn das Ende der Datei erreicht wurde, gibt f.read () eine leere Zeichenfolge ("") zurück.
Wenn Sie dies mit dem pathlibModul tun müssen , können Sie pathlib.Path.open()die Datei öffnen und den Text drucken von read():
from pathlib import Path
fpath = Path("somefile.txt")
with fpath.open() as f:
print(f.read())
Oder rufen Sie einfach an pathlib.Path.read_text():
from pathlib import Path
fpath = Path("somefile.txt")
print(fpath.read_text())