Laboratorium 10


Operacje na plikach i wyjątki

Otwieranie pliku:
open("ścieżka_do_pliku", "tryb_dostepu") - otwieranie pliku
w miejsce tryb_dostepu należy podać jedną z wartości:
	r - plik do odczytu
	r+ - plik do odczytu i zapisu
	a - plik do zapisu (dopisanie)
	w - plik do zapisu (nadpisanie)
Przykład:
plik = open("dane.txt", "r")
print("Plik dane.txt istnieje")
plik.close()
Przykład z "with" - automatyczne zamykanie pliku:
with open("dane.txt", "r") as plik
	print("Plik dane.txt istnieje")
Przykład wyjątku przechwytującego brak pliku:
try:
    plik = open("dane.txt", "r")
except FileNotFoundError:
    print("Nie ma takiego pliku!")
finally:
    plik.close()
Zadania

UWAGA: W każdym z poniższych zadań proszę skorzystać w wyjątków tak, aby program uwzgędniał wszystkie możliwe błedy.

Zadanie 1. Napisz skrypt, który odczyta dane z pliku liczby.txt oraz wyświetli największa i najmniejszą z nich na ekranie. Wejście: Zmienna liczba przechowująca kolejne dane pobrane z pliku liczby.txt.
Wyjście: Na ekranie pojawia się informacja, które liczby z pliku liczby.txt są najmniejsze, a które największe.
Warunki poprawności zadania: Upewnij się, że program prawidłowo pobiera dane z pliku oraz wyświetla prawidłowe wartości.

Zadanie 2. Napisz skrypt, który będzie zawierał listę liczb. Następnie wpisze do pliku nieparzyste.txt, które z podanych liczb są liczby nieparzyste oraz do pliku parzyste.txt podane liczby parzyste.
Wejście: Zmienna lista przechowująca liczby całkowite.
Wyjście: Pliki parzyste.txt i nieparzyste.txt zawierające odpowiednie wartości.
Warunki poprawności zadania: Upewnij się, że program wpisuje odpowiednie wartości do odpowiednich plików. Upewnij się, że program działa prawidłowo dla różnych danych.

Zadanie 3. Napisz skrypt, który zasymuluje losowanie Lotto, tzn. wylosuje 6 liczb z zakresu od 1 do 49 w taki sposób, aby żadna się nie powtarzała. Następnie wpisze do pliku lotto.txt wyniki losowania. Podpowiedź: W celu wylosowania liczby możesz zaimportować bibliotekę random oraz użyć funkcji randint. Pseudolosowanie liczby całkowitej z zakresu od liczba1 do liczba2: random.randint(liczba1, liczba2).
Wejście: Brak.
Wyjście: Pliki lotto.txt zawierający pseudolosowe liczby z zakresu 1 do 49.
Warunki poprawności zadania: Upewnij się, że program wpisuje odpowiednie liczby do pliku, które się nie powtarzają.

Zadanie 4. Napisz skrypt, który sprawdzi czy w pliku baza.txt się osoba o podanym imieniu i nazwisku. Wypisz odpowiedni komunikat na ekranie.
Wejście: Zmienne imie i nazwisko przechowujące pobrane dane.
Wyjście: Na ekranie pojawia się informacja czy osoba o podanym imieniu i podanym nazwisku istnieje czy nie.
Warunki poprawności zadania: Upewnij się, że program przeszukuje prawidłowo dane i wypisuje prawidłowe informację.

Zadanie 5. Napisz skrypt, który wyświetli informację ile jest liter (dużych i małych), cyfr, znaków białych (spacja, nowa linia, tabulator) oraz pozostałych znaków w pliku wiersz.txt lub innego przez ciebie wybranego pliku.
Wejście: Zmienna dane przechowujące dane pobrane z pliku.
Wyjście: Na ekranie pojawia się odpowiednie informacje.
Warunki poprawności zadania: Upewnij się, że program wypisuje prawidłowe informację dla plików o różnych wartościach.

Zadanie 6. Palindromem nazywamy słowo, które czytane od lewej do prawej i od prawej do lewej jest brzmi taki samo. Przykładowo słowo kajak jest palindromem.
Napisz skrypt, który wczyta dane z pliku znaki.txt oraz wypisze na ekranie informację na temat tego ile jest palindromów oraz wypisze do pliku palindrom.txt wszystkie wczytane palindromy.
Wejście: Zmienna napis, która przechowuje odpowiedni ciąg znaków.
Wyjście: Na ekranie pojawia się odpowiednia liczba palindromów oraz do plik palindrom.txt zawiera wszystkie słowa będące, które są palindromem z pliku znaki.txt.
Warunki poprawności zadania: Upewnij się, że program wypisuje prawidłową liczbę palindromów oraz wpisuje wszystkie palindromy do pliku palindrom.txt.

Zadanie 7. Pewien szyfr polega na zastępowaniu każdej litery tekstu inną literą, oddaloną od niej o stałą liczbę pozycji w alfabecie, bez rozróżniania wielkości liter. Przykładowo dla przesunięcia 3 litera B zostanie zastąpiona literą E natomiast litera Y literą B. W pliku szyfr.txt znajdują się słowa zaszyfrowane tym szyfrem (pierwsza kolumna) oraz liczby odpowiadające przesunięciom (druga kolumna). Napisz skrypt, który odszyfruje słowa z pliku szyfr.txt oraz zapisze je do pliku odszyfr.txt.
Uwaga: Przyjmij, że słowa składają się tylko z dużych liter i nie zawierają polskich znaków.
Wejście: Zmienna szyfr, która przechowywać kolejne pobrane napisy i zmienna przesuniecie przechowująca odpowiednie przesunięcie.
Wyjście: Plik odszyfr.txt zawiera odszyfrowane dane.
Warunki poprawności zadania: Upewnij się, że program wypisuje prawidłowo odszyfrowuje dane. Plik odszyfr.txt powinien mieć zawartość składającą się z prawidłowo odszyfrowanych polskich słów.