Lekcja 13 – Zarządzanie plikami tekstowymi

Kurs: Darmowy kurs Python dla początkujących
Lekcja 13: Zarządzanie plikami tekstowymi

⇓ spis treści ⇓


Program do przechowywania i wyszukiwania notatek w plikach

W tej lekcji stworzymy prosty program do przechowywania notatek w pliku tekstowym oraz ich wyszukiwania. Program pozwoli na dodawanie nowych notatek, wyświetlanie wszystkich notatek oraz wyszukiwanie konkretnych fraz w zapisanych notatkach.

1. Struktura programu

Program będzie składał się z kilku funkcji:

  • dodaj_notatke – Dodaje nową notatkę do pliku.
  • wyswietl_notatki – Wyświetla wszystkie zapisane notatki.
  • wyszukaj_notatke – Wyszukuje notatki zawierające określoną frazę.
  • menu – Wyświetla menu opcji i obsługuje interakcję z użytkownikiem.
2. Implementacja funkcji

Poniżej znajduje się implementacja programu:

# Funkcja dodająca notatkę do pliku
def dodaj_notatke(nazwa_pliku, tresc):
    with open(nazwa_pliku, "a", encoding="utf-8") as plik:
        plik.write(tresc + "\n")
    print("Notatka została dodana.")

# Funkcja wyświetlająca wszystkie notatki
def wyswietl_notatki(nazwa_pliku):
    try:
        with open(nazwa_pliku, "r", encoding="utf-8") as plik:
            notatki = plik.readlines()
            if not notatki:
                print("Brak zapisanych notatek.")
            else:
                print("Twoje notatki:")
                for i, notatka w enumerate(notatki, start=1):
                    print(f"{i}. {notatka.strip()}")
    except FileNotFoundError:
        print(f"Plik '{nazwa_pliku}' nie istnieje. Dodaj pierwszą notatkę, aby utworzyć plik.")

# Funkcja wyszukująca notatki zawierające określoną frazę
def wyszukaj_notatke(nazwa_pliku, fraza):
    try:
        with open(nazwa_pliku, "r", encoding="utf-8") as plik:
            notatki = plik.readlines()
            znalezione = [notatka.strip() for notatka in notatki if fraza.lower() in notatka.lower()]
            if znalezione:
                print("Znalezione notatki:")
                for notatka in znalezione:
                    print(f"- {notatka}")
            else:
                print("Nie znaleziono notatek zawierających podaną frazę.")
    except FileNotFoundError:
        print(f"Plik '{nazwa_pliku}' nie istnieje. Dodaj pierwszą notatkę, aby utworzyć plik.")
3. Menu i interakcja z użytkownikiem

Stworzymy funkcję menu, która umożliwi użytkownikowi wybór jednej z dostępnych opcji.

# Funkcja wyświetlająca menu i obsługująca użytkownika
def menu():
    nazwa_pliku = "notatki.txt"
    while True:
        print("\n--- Zarządzanie Notatkami ---")
        print("1. Dodaj notatkę")
        print("2. Wyświetl wszystkie notatki")
        print("3. Wyszukaj notatkę")
        print("4. Wyjdź")
        
        wybor = input("Wybierz opcję (1-4): ")
        
        if wybor == "1":
            tresc = input("Wpisz treść notatki: ")
            dodaj_notatke(nazwa_pliku, tresc)
        elif wybor == "2":
            wyswietl_notatki(nazwa_pliku)
        elif wybor == "3":
            fraza = input("Wpisz frazę do wyszukania: ")
            wyszukaj_notatke(nazwa_pliku, fraza)
        elif wybor == "4":
            print("Dziękujemy za korzystanie z programu!")
            break
        else:
            print("Błąd: Nieprawidłowy wybór. Spróbuj ponownie.")
4. Przykład działania programu

Poniżej znajduje się przykład interakcji użytkownika z programem:

--- Zarządzanie Notatkami ---
1. Dodaj notatkę
2. Wyświetl wszystkie notatki
3. Wyszukaj notatkę
4. Wyjdź
Wybierz opcję (1-4): 1
Wpisz treść notatki: Kup mleko
Notatka została dodana.

--- Zarządzanie Notatkami ---
1. Dodaj notatkę
2. Wyświetl wszystkie notatki
3. Wyszukaj notatkę
4. Wyjdź
Wybierz opcję (1-4): 2
Twoje notatki:
1. Kup mleko

--- Zarządzanie Notatkami ---
1. Dodaj notatkę
2. Wyświetl wszystkie notatki
3. Wyszukaj notatkę
4. Wyjdź
Wybierz opcję (1-4): 3
Wpisz frazę do wyszukania: mleko
Znalezione notatki:
- Kup mleko

--- Zarządzanie Notatkami ---
1. Dodaj notatkę
2. Wyświetl wszystkie notatki
3. Wyszukaj notatkę
4. Wyjdź
Wybierz opcję (1-4): 4
Dziękujemy za korzystanie z programu!

Ten program jest doskonałym przykładem zastosowania plików tekstowych do przechowywania i zarządzania danymi w prosty sposób. Możesz go rozbudować, np. dodając obsługę usuwania notatek lub sortowania.

Następna lekcja ==> Prosta gra tekstowa



Spis Treści - darmowy kurs Python dla początkujących


Lekcja 1: Wprowadzenie do programowania
- Co to jest programowanie?
- Dlaczego warto uczyć się Pythona?
- Instalacja Python i wprowadzenie do edytorów (IDLE, VS Code).
Lekcja 2: Pierwszy program w Pythonie
- Składnia Pythona.
- Wyświetlanie tekstu (funkcja print).
- Komentarze i ich znaczenie.
Lekcja 3: Podstawowe typy danych
- Liczby: int, float.
- Ciągi znaków (stringi).
- Typ logiczny (boolean).
- Funkcja type.
Lekcja 4: Zmienne i operatory
- Deklaracja i przypisywanie zmiennych.
- Operatory arytmetyczne, porównania, logiczne.
Lekcja 5: Listy i krotki
- Tworzenie list i krotek.
- Indeksowanie, dodawanie, usuwanie elementów.
- Operacje na listach.
Lekcja 6: Słowniki i zbiory
- Tworzenie i operacje na słownikach.
- Iteracja po słownikach.
- Zbiory i ich zastosowania.
Lekcja 7: Instrukcje warunkowe
- Instrukcje if, elif, else.
- Operatory logiczne w praktyce.
Lekcja 8: Pętle
- Pętla for i while.
- Instrukcje break, continue, else w pętlach.
Lekcja 9: Funkcje
- Tworzenie i wywoływanie funkcji.
- Argumenty i wartości domyślne.
- Funkcje anonimowe (lambda).
Lekcja 10: Praca z plikami
- Otwieranie, czytanie i zapisywanie plików.
- Obsługa błędów przy pracy z plikami.
Lekcja 11: Podstawy programowania obiektowego
- Klasy i obiekty.
- Atrybuty i metody.
- Prosty projekt: Zarządzanie listą zadań.
Lekcja 12: Tworzenie prostego kalkulatora
- Łączenie funkcji i warunków.
- Obsługa błędów (try-except).
Lekcja 13: Zarządzanie plikami tekstowymi
- Program do przechowywania i wyszukiwania notatek w plikach.
Lekcja 14: Prosta gra tekstowa w Python
- Wprowadzenie do pętli i logiki gry.
- Interaktywna gra konsolowa, np. zgadywanie liczby.

Jeśli chciałbyś być poinformowany o następnych kursach to zapisz się do naszego newslettera: