Praca z plikami w Python
Python pozwala na odczyt, zapis i modyfikację plików tekstowych oraz binarnych. Operacje te realizowane są głównie za pomocą wbudowanej funkcji open().
1. Otwieranie plików
Składnia:
Tryby otwierania plików:
| Tryb | Opis |
|---|---|
"r" |
odczyt (read), plik musi istnieć |
"w" |
zapis (write), tworzy nowy plik lub nadpisuje istniejący |
"a" |
dopisywanie (append), dodaje na końcu pliku |
"x" |
tworzy nowy plik, błąd jeśli plik istnieje |
"b" |
tryb binarny (np. "rb", "wb") |
"+" |
odczyt i zapis (np. "r+") |
2. Odczyt pliku
2.1. Metoda read()
- Odczytuje cały plik jako jeden string:
- Użycie
withzapewnia automatyczne zamknięcie pliku.
2.2. Metoda readline()
- Odczytuje po jednej linii:
2.3. Metoda readlines()
- Zwraca listę wszystkich linii:
3. Zapis do pliku
3.1. Metoda write()
3.2. Metoda writelines()
- Zapisuje listę stringów:
- Pamiętaj, aby samodzielnie dodawać znaki nowej linii (
\n).
4. Tryb dopisywania (append)
- Dodaje zawartość na końcu pliku, nie nadpisuje istniejącej:
5. Praca z plikami binarnymi
- Tryby
"rb","wb","ab"służą do pracy z obrazami, dźwiękiem itp.
6. Pozycjonowanie w pliku
6.1. seek(offset, whence)
- Ustawia wskaźnik odczytu/zapisu w pliku:
whencedomyślnie 0 (początek), 1 (aktualna pozycja), 2 (koniec pliku).
6.2. tell()
- Zwraca aktualną pozycję wskaźnika w pliku:
7. Automatyczne zamykanie pliku
- Najbezpieczniejsza forma to użycie
with, które automatycznie zamyka plik po wyjściu z bloku:
8. Obsługa wyjątków przy pracy z plikami
9. Zaawansowane techniki
9.1. Odczyt pliku po kawałkach
9.2. Liczenie linii, słów i znaków
9.3. Modyfikacja pliku
- W Pythonie nie można modyfikować pliku w miejscu – trzeba odczytać, zmienić i zapisać ponownie:
10. Dobre praktyki
- Zawsze używaj
withdla bezpieczeństwa. - Zamykaj pliki po skończonej pracy (
file.close()jeśli nie używaszwith). - Obsługuj wyjątki (np.
FileNotFoundError,IOError). - Przy dużych plikach odczytuj je po kawałkach lub liniami, aby oszczędzić pamięć.
- Do plików binarnych używaj trybu
"b".