Szukałem i mogę znaleźć tylko pytania na odwrót: zapisywanie stdin do pliku :)
Czy istnieje szybki i łatwy sposób zrzucenia zawartości pliku na standardowe wyjście?
Szukałem i mogę znaleźć tylko pytania na odwrót: zapisywanie stdin do pliku :)
Czy istnieje szybki i łatwy sposób zrzucenia zawartości pliku na standardowe wyjście?
Odpowiedzi:
Pewnie. Zakładając, że masz ciąg o nazwie pliku o nazwie fname, poniższe rozwiązuje problem.
with open(fname, 'r') as fin:
print(fin.read())
print(fin.read(), end=""). Aby wykorzystać to rozwiązanie w Pythonie 2, from __future__ import print_functionpotrzebne będzie prefiksowanie . Oczywiście aplikacje Python 2 i tak powinny zawsze korzystać z print()funkcji Python 3 - więc nie jest to dużym obciążeniem.
f = open('file.txt', 'r')
print f.read()
f.close()
Z http://docs.python.org/tutorial/inputoutput.html
Aby odczytać zawartość pliku, wywołaj f.read (size), który odczytuje pewną ilość danych i zwraca je jako ciąg. rozmiar to opcjonalny argument liczbowy. Gdy rozmiar jest pominięty lub ujemny, cała zawartość pliku zostanie odczytana i zwrócona; to twój problem, jeśli plik jest dwa razy większy niż pamięć twojego komputera. W przeciwnym razie odczytywane i zwracane są maksymalnie bajty rozmiaru. Jeśli osiągnięto koniec pliku, f.read () zwróci pusty ciąg ("").
Moja skrócona wersja w Pythonie3
print(open('file.txt').read())
Jeśli musisz to zrobić z pathlibmodułem, możesz użyć pathlib.Path.open()do otwarcia pliku i wydrukowania tekstu z read():
from pathlib import Path
fpath = Path("somefile.txt")
with fpath.open() as f:
print(f.read())
Lub po prostu zadzwoń pathlib.Path.read_text():
from pathlib import Path
fpath = Path("somefile.txt")
print(fpath.read_text())