Ścieżki do pliku – względna i bezwzględna
W naszym przypadku, plik fileToRead.txt znajduje się w katalogu testFiles. Dlatego do metody open()
zamiast nazwy pliku musimy przekazać ścieżkę do pliku wraz z jego nazwą. Możemy użyć względnej ścieżki do pliku, która ma postać:
./testFiles/fileToRead.txt
Taka ścieżka składa się kolejno z następujących części:
- . – oznacza aktualny katalog, w którym znajduje się uruchamiany skrypt,
- testFiles – nazwa folderu, w którym znajduje się nasz plik,
- fileToRead.txt – nazwa pliku, który chcemy odczytać.
Poza ścieżką względną jest jeszcze ścieżka bezwzględna. Ten typ ścieżki do pliku uwzględnia wszystkie katalogi poczynając od nazwy dysku, na którym plik się znajduje. W przypadku naszego projektu i pliku fileToRead.txt, ścieżka bezwzględna wyglądałaby w następujący sposób:
C:/Projects/pythonFiles/testFiles/fileToRead.txt
Zastosowanie ścieżki bezwzględnej nie jest błędem, ale ścieżka względna posiada bardzo duży atut. Jeśli jej użyjemy, to możemy nasz projekt skopiować w dowolne inne miejsce na dysku i wszystkie skrypty nadal będą działać 😉 Jeśli natomiast użyjemy ścieżki bezwzględnej i skopiujemy projekt w inne miejsce, to będziemy musieli poprawić nasze skrypty. Dlatego też wybierzemy ścieżkę względną 😉
Copy | Path
Możesz wtedy wybrać:
- Ścieżkę bezwzględną – Absolute Path,
- Ścieżkę względną – Path From Content Root.
Całość wywołania metody open()
przyjmie postać:
open("./testFiles/fileToRead.txt")
Po uruchomieniu tego kodu, już nie dostajemy błędu. Ale nic więcej też się nie dzieje 😁
Obiekt pliku
Czyli co już odczytaliśmy plik i możemy go wypisać?
Nie do końca😉 Na razie otworzyliśmy plik.
Użycie funkcji open()
zwraca obiekt pliku, który nazywamy strumieniem (z ang. stream). My dla uproszczenia ten stream będziemy nazywać właśnie jako obiekt pliku. Taki obiekt udostępnia nam różnego typu metody do odczytu i zapisu danych.
Możemy dzięki niemu zapisywać z i do pliku. Metody te będziemy powoli poznawać wraz z kolejnymi lekcjami 😉
open()
, to zajrzyj do oficjalnej dokumentacji Built-in Functions – Open(). My w tej sekcji pokryjemy najważniejszą część zagadnień poruszonych w oficjalnej dokumentacji 😉
Skoro funkcja open()
zwraca nam obiekt pliku to pasuje go gdzieś zapisać. Najlepiej do zmiennej. Nasz kod będzie wyglądał teraz tak:
file = open("./testFiles/fileToRead.txt")
Uruchomienie tego kodu jednak dalej nie zwraca tekstu z pliku😾 Z drugiej strony nie ma błędu więc sam kod jest poprawny😉
Wszystko się zgadza: wykonaliśmy na razie operację otwarcia pliku i przypisania obiekt pliku do zmiennej. Czas na odczyt zawartości!