Rozdział 15 · Python i akta

Podsumowanie rozdziału: Zestaw narzędzi do plików

Od „gdzie idą zmienne”

Zestaw narzędzi do plików

Co wybrać dla konkretnych zadań
Potrzebna jest ścieżka
pathlib.Path
Potrzebuję aktualnego katalogu roboczego
Path.cwd()
Potrzebujesz folderu obok twojego . py-pliku
Path(__file__).resolve().parent
Mały UTF-8- plik tekstowy w całości
path.read_text() / write_text()
Przetwarzanie wiersz po wierszu lub tryb specjalny
with path.open( tryb, encoding=„utf-8”
Dopisanie bez utraty starej zawartości
open(path, „a”
Tworzyć, ale nie zastępować istniejącego pliku
open(path, „x”
Dane binarne w całości
path.read_bytes() / write_bytes()
Lista zawartości folderów
path.iterdir()
Wyszukaj pliki według szablonu
path.glob("*.txt")
Zagnieżdżona struktura danych
moduł json
Tabela z łańcuch znaków i kolumnami
moduł csv
Wielu użytkowników / transakcji
prawdopodobnie baza danych to nie jest prosty plik
Rozdział 15 całych
Wytrwałość
pamięć procesu — tymczasowa
trwałe przechowywanie przetrwa proces
ładowanie ≠ ten sam obiekt
System plików
plik vs folderze
bezwzględna vs względna ścieżka
CWD ≠ folder skryptów
pathlib.Path
ścieżka jako obiekt
name / stem / suffix / parent
read_text/write_text/read_bytes/write_bytes
Plik i with
open() → obiekt pliku
with gwarantuje zamknięcie
kursor przesuwa się do przodu tell()/seek()
Tekst i bajty
str jest zakodowany w bytes
UTF-8 oczywiście jest wyraźnym wyborem
znaki ≠ bajty
Dane strukturalne
JSON — struktury zagnieżdżone
CSV są tabelami, a nie split(„,”
bezpieczne oszczędzanie jest temp → replace
Praca z plikami
Wytrwałość
pamięć jest tymczasowa
magazyn przeżywa zakończenie procesu
Ścieżki
absolutne i względne
CWD
pathlib.Path
Plik
open/with
kursor, tell/seek
r/w/a/x tryby
Tekst i bajty
str/bytes
UTF-8
Dane strukturalne
JSON
CSV
Mapa rozdziału 15 w całości.

co dalej

Rozdział 16: Tkinter-app
wykorzystuje to, co już wiemy
load_settings() / save_settings()
settings.json
Trwałość opanowana w tym rozdziale staje się pamięcią przyszłej aplikacji graficznej.

W rozdziale 16 („Budowanie fajnych aplikacji z Tkinter” load_settings()/save_settings() z sekcji 15.25, bez żadnej nowej linijki o plikach.

Czego nauczyliśmy się w tym rozdziale

  • Obiekty Python żyją w pamięci procesu i nie przeżywają jego zakończenia — dane w trwałym magazynie plików mogą przeżyć zakończenie procesu.
  • Ścieżka — nie zawartość pliku: Path(...) tylko odnosi się do miejsca w systemie plików.
  • Ścieżka względna jest rozwiązywana względem aktualnego katalogu roboczego (CWD) — a nie folderu skryptów.
  • pathlib.Path jest ścieżką jako obiektem: name/stem/suffix/parent i wygodne metody zamiast ręcznego składania łańcuch znaków.
  • open() zwraca obiekt pliku; with zapewnia, że zamknięcie się nawet w przypadku błędu.
  • Plik posiada kursor — pozycję odczytu/zapisu, która przesuwa się do przodu i nie wraca sama; do tego jest seek().
  • Tryby r/w/a/x - Inne ryzyko niż istniejąca zawartość. "w" usuwa plik po otwarciu.
  • Tekst jest kodowany w bajtach – zawsze wyraźnie encoding="utf-8", nie polegaj na domyślnym kodowaniu.
  • JSON przechowuje zagnieżdżone Python strukturach; CSV są tabelami; ani split(„,”
  • Pliki ćwiczeń w przeglądarce (Pyodide) nie są plikami na twoim prawdziwym komputerze.