246
Rozdział 6.
Odczytywanie tego, co zapisane
Odczytywanie danych z istniejącego pliku
Gdy dodałeś już kilka wierszy danych do pliku todos.txt, przekonajmy się, jaki kod odpowiedzialny
za otwieranie, przetwarzanie i zamykanie jest niezbędny, aby odczytać zapisane dane z naszego pliku
i wyświetlić je na ekranie.
Tym razem chcemy jedynie odczytywać dane z pliku, dlatego zamiast otwierać plik w trybie dołączania,
powinniśmy skorzystać z trybu odczytu, który jest
domyślnym trybem
działania metody
open
. Oznacza
to, że w ogóle nie musimy tu podawać argumentu trybu; funkcji powinniśmy podać jedynie nazwę
pliku do otwarcia. W tym kodzie nie będziemy używać zmiennej
todos
w roli synonimu naszego pliku;
zamiast tego będziemy się odwoływać do pliku za pomocą zmiennej o nazwie
tasks
(podobnie jak
wcześniej, możesz tu użyć dowolnej nazwy, jaka tylko przyjdzie Ci do głowy).
Ponieważ tylko odczytujesz dane z zapisanego już wcześniej pliku, wywołanie metody
close
jest tu o wiele mniej istotne, niż miało to miejsce wtedy, gdy zapisywałeś dane. Jednak
zawsze dobrze jest zamykać pliki, jeśli nie są one już potrzebne, dlatego wywołaj metodę
close
, gdy skończysz korzystać z pliku reprezentowanego przez zmienną
todos
.
>>> tasks = open('todos.txt')
Otwórz plik...
Jeśli wszystko jest w porządku,
funkcja open zwraca strumień pliku,
który przypisaliśmy do tej zmiennej
2
.
Użyjmy teraz zmiennej
tasks
w połączeniu z pętlą
for
, aby odczytać poszczególne wiersze
danych z pliku. Gdy to zrobimy, do zmiennej iteracyjnej (o nazwie
chore
) przy każdym przejściu
pętli będzie przypisywany jeden (bieżący) wiersz danych odczytany z pliku. Jest tak, ponieważ
gdy w Pythonie korzystasz ze strumienia pliku oraz instrukcji pętli
for
, interpreter działa na
tyle sprytnie, aby odczytywać po jednym wierszu danych w każdej iteracji tej pętli. Jego spryt
przejawia się też w tym, żeby zakończyć działanie pętli, gdy nie ma więcej danych do odczytania.
>>> tasks.close()
Zakończyliśmy, więc pora po sobie
posprzątać, zamykając strumień pliku.
>>> for chore in tasks:
print(chore)
Pozmywaj naczynia.
Nakarm kota.
Przygotuj zeznanie podatkowe.
Zmienna tasks
reprezentuje
strumień pliku.
Traktuj
zmienną chore
jako synonim
wiersza
używanego
pliku.
Na ekranie wyświetlane są dane
pochodzące z pliku todos.txt.
Zauważ, że pętla kończy swoje
działanie, gdy w pliku nie ma
więcej wierszy do odczytania.
...o tej nazwie.
2
W razie wystąpienia problemów z odczytywaniem z plików łańcuchów znakowych zawierających polskie znaki należy skorzystać ze sposobu
przedstawionego w przypisie zamieszczonym na poprzedniej stronie — przyp. tłum.
Odczyt to
domyślny tryb
używany przez
funkcję open.
Get Python Rusz głową! Wydanie II now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.