Niniejszy artykuł zaprezentuje Ci jak krok po kroku zaprogramować odczyt pliku tekstowego w języku Python 🌟! Takie operacje mogą budzić przekonanie, że jest to trudne i wymagające niebywałych operacji, natomiast w języku Python jest to proste i bezbolesne ❤️. Zapraszam 😉!

PRZEDSTAWIAM JAK WYKONAĆ ODCZYT PLIKU TEKSTOWEGO W JĘZYKU PYTHON!

Python bardzo ułatwia obsługę plików tekstowych i tak jak w niektórych językach trzeba skorzystać z większej liczby funkcji do programowania samego procesu odczytu, tak tutaj wystarczy Ci jedna funkcja 😄!

JAK OTWORZYĆ PLIK TEKSTOWY W JĘZYKU PYTHON?

Wystarczy skorzystać z funkcji "open"! Po podaniu parametrów w postaci ścieżki do pliku tekstowego i trybu odczytu pliku (dalej wyjaśniam co to oznacza), Python odnajduje plik tekstowy i otwiera go 📂. To jest przykład użycia, który zakłada występowanie pliku tekstowego o nazwie "file.txt" w tym samym katalogu, w którym znajduje się Twój skrypt 👇:

my_file = open('file.txt', 'r')

Przyjrzyjmy się samemu wywołaniu 👀.

Najpierw podajesz ścieżkę względną do pliku tekstowego jaki masz zamiar odczytać w postaci łańcucha znaków 1️⃣. Ścieżka względna oznacza taką ścieżkę, której "początkiem" czy jej "korzeniem" jest katalog, w którym znajduje się skrypt z tym kodem ℹ️. Funkcja "open" gdy próbuje wyszukać plik, zaczyna zawsze od katalogu ze skryptem - nie od dysku C, "Program Files" czy jakiegokolwiek innego kluczowego miejsca 🔥. W sytuacji nieznalezienia pliku o podanej nazwie, Python natychmiast zgłasza błąd typu "FileNotFoundError" i przerywa dalsze wykonywanie programu (chyba, że dodaliśmy przechwytywanie wyjątku) ❌.

Zauważ, że występuje też rozszerzenie "txt" i ono także musi występować jako fragment łańcucha ⚠️!

Plik tekstowy może jak najbardziej znajdować się w innym katalogu znajdującym się w katalogu ze skryptem 😅. Gdyby Ci się tak zdarzyło, wtedy w ścieżce podajesz najpierw nazwę katalogu, oddzielasz znakiem ukośnika (/) i wtedy dopiero wpisujesz nazwę pliku z rozszerzeniem 💡.

Drugim parametrem jest tryb obsługi pliku i to również jest łańcuch znaków 2️⃣.

JAKIE WYSTĘPUJĄ TRYBY OBSŁUGI PLIKU W JĘZYKU PYTHON?

Python wspiera kilka następujących trybów obsługi 👇:

TRYB ZNACZENIE
'r' otwarcie dla odczytu
'w' otwarcie dla zapisu z wyczyszczeniem aktualnej zawartości
'x' otwarcie dla utworzenia (jeżeli plik już istnieje, wtedy zgłasza błąd "FileExistsError")
'a' otwarcie dla zapisu dodając zmiany na końcu pliku, jeśli istnieje
'b' tryb binarny
't' tryb tekstowy (domyślny)
'+' otwarcie dla aktualizacji (zapis i odczyt)

Więcej informacji znajdziesz oczywiście w oficjalnej dokumentacji Pythona 📖. Nas interesuje odczyt, zatem wpisujemy tryb 'r' 😊.

To jest wszystko! Jeżeli Python znajdzie plik, do którego bezbłędnie wprowadziliśmy ścieżkę, to zostanie otwarty i od tej chwili możemy przeprowadzać operacje odczytu 🔥!

Funkcja "open" w języku Python w trybie odczytu

Funkcja "open" odpowiedzialna jest za otwarcie pliku celem umożliwienia wykonywania na nim operacji. Jeżeli nie uda się odnaleźć pliku o wskazanej ścieżce, to dalsze działanie programu zostaje natychmiast przerwane!

Przyjrzyjmy się metodom 👀!

JAKIE WYSTĘPUJĄ METODY DO ODCZYTU PLIKU TEKSTOWEGO W JĘZYKU PYTHON?

Oto 3 takie najbardziej podstawowe metody służące do odczytu danych z pliku tekstowego w Pythonie 👇:

  • read,
  • readline,
  • readlines.

Krótko przedstawię każdą z nich, a Tobie przypomnę o oficjalnej dokumentacji, z której możesz dowiedzieć się jeszcze więcej na ten temat 📖.

READ

Metoda "read" zwraca całą zawartość pliku albo jak największą część w przypadku, gdy dojdzie do przekroczenia maksymalnego rozmiaru bufora 📈. Bufor jest miejscem do magazynowania danych pomiędzy miejscem początkowym (plik), a docelowym (strumień  wyjściowy) i jest po to, aby ograniczyć obciążające procesor operacje przekazywania danych i zapewnić asynchroniczność przy różnicy szybkości po obu "stronach" 💡.

To jest przykład użycia metody 👇:

print(my_file.read())

Efektem będzie ujrzenie calutkiej zawartości pliku, od pierwszego do ostatniego wiersza 👍.

Metoda "read" pliku w języku Python

Metoda "read" zwraca za jednym zamachem całą zawartość pliku, od pierwszego do ostatniego wiersza.

READLINE

"readline" jak nazwa wskazuje, zwraca cały jeden wiersz zawartości pliku. Ten przykład 👇:

print(my_file.readline())

sprawi, że po uruchomieniu programu ujrzysz w konsoli całą zawartość pojedynczego wiersza 📜. Znak jaki metoda bierze pod uwagę do rozdzielania wierszy, to znak nowej linii ('\n') ℹ️.

Musisz wiedzieć, że przy każdorazowym wywołaniu tej metody, Python od razu przechodzi do kolejnego wiersza i robi to sukcesywnie, aż dojdzie do ostatniego ⚠️! Dlatego nie bądź zdziwiony(-a), gdy za każdym razem ujrzysz kolejny wiersz i kolejny 😳.

Metoda "readline" pliku w języku Python

Metoda "readline" zwraca jeden wiersz zawartości pliku.

READLINES

"readlines" zwraca nam listę łańcuchów znaków w charakterze pojedynczych wierszy, stąd najlepiej się z tego korzysta w połączeniu z pętlą "for" ℹ️. Tak wygląda przykład użycia 👇:

for line in my_file.readlines():
	print(line, end='')

Dla każdego wiersza pliku (elementu listy uzyskanej z metody "readlines"), wywołaj funkcję "print", aby jego zawartość wypisać na strumieniu wyjściowym ✍. Efektem będzie wyświetlenie każdego wiersza pliku jeden pod drugim ❤️.

Ponieważ rozpoczynanie od nowego wiersza już "zawiera się" w każdym z wierszy, wstawiamy dodatkowy parametr "end", aby usunąć znak nowej linii ('\n') z końca łańcucha znaków wpisanego w pierwszym parametrze 👍.

Metoda "readlines" pliku w języku Python

Metoda "readlines" zwraca listę łańcuchów znaków jako pojedynczych wierszy zawartości pliku.

Wszystko z metod, więc przechodzimy do kolejnego zagadnienia - zakończenie obsługiwania pliku 🔥!

JAK PRAWIDŁOWO ZAKOŃCZYĆ ODCZYT PLIKU TEKSTOWEGO W JĘZYKU PYTHON?

Po upewnieniu się, że zakończyliśmy wszelkie czynności związane z plikiem, który został wcześniej otwarty, należy zamknąć jego strumień 💥! Początkujący bardzo często o tym zapominają 😐. Jest to bardzo ważne, gdyż istnieje ryzyko, że jak tego nie zrobimy, to w dalszym ciągu funkcjonowania systemu operacyjnego na jakim pracujemy, plik dalej pozostanie "otwarty", a to będzie miało nieprzyjemne konsekwencje np. nie będziemy mogli usunąć pliku 🚫!

Plik zamykasz metodą "close" 👇:

my_file.close()

Tyle. Wtedy plik zostanie bezpiecznie zamknięty 🔒.

Metoda "close" pliku w języku Python

Metoda "close" zamyka strumień do obsługi pliku i sprawia, że można go nadal obsługiwać przez system operacyjny, jak każdy inny plik.

JAK WYŚWIETLIĆ POLSKIE ZNAKI PODCZAS ODCZYTU PLIKU TEKSTOWEGO W JĘZYKU PYTHON?

Jeżeli zamiast polskich znaków 🇵🇱 pokazują Ci się tzw. "krzaki", czyli znaki pozbawione sensu w miejscach, które powinny wyświetlać litery, do wywołania funkcji "open" dopisz dodatkowy parametr "encoding" i wskaż na kodowanie według UTF-8 👇:

my_file = open('file.txt', 'r', encoding='utf-8')

Po ponownym uruchomieniu programu, problem powinien zniknąć 🙂.


Tak się kończy materiał o odczycie pliku tekstowego ✅. Podsumowując, wystarczą nam tylko 3 wywołania, aby prawidłowo wykonać odczyt pliku tekstowego: "open", "read" i "close" 3️⃣. Python naprawdę bardzo ułatwia tę operację i w niektórych innych językach możesz się zdziwić liczbą instrukcji celem wykonania tego samego 😏.

PODOBNE ARTYKUŁY