W Pythonie pliki obsługuje się najbezpieczniej konstrukcją with open(...), która automatycznie zamyka plik nawet jeśli wystąpi błąd w trakcie jego przetwarzania.
| Tryb | Znaczenie |
|---|---|
| "r" | Odczyt (błąd, jeśli plik nie istnieje) |
| "w" | Zapis — nadpisuje cały plik od początku |
| "a" | Dopisywanie na końcu istniejącego pliku |
Moduł csv ułatwia odczyt i zapis danych w formacie tabelarycznym (wartości rozdzielone przecinkiem). DictReader pozwala odwoływać się do kolumn po nazwie zamiast po numerze indeksu.
Dane odczytane z pliku (również z CSV) są zawsze tekstem (str), nawet jeśli wyglądają jak liczby! Trzeba je jawnie skonwertować: int(wiersz["ocena"]) lub float(...), zanim wykonamy na nich obliczenia.
Mając plik oceny.txt, gdzie każda linia zawiera jedną ocenę (liczbę), wczytaj wszystkie oceny, oblicz średnią arytmetyczną i zapisz wynik do nowego pliku srednia.txt.
Wczytaj plik uczniowie.csv i zapisz do nowego pliku najlepsi.csv tylko tych uczniów, których średnia jest wyższa niż 4.5.
1. Która konstrukcja gwarantuje automatyczne zamknięcie pliku, nawet przy błędzie?
2. Jakiego typu są dane odczytane z pliku tekstowego lub CSV?
3. Jaki tryb otwarcia pliku dopisuje dane na końcu, nie kasując istniejącej zawartości?