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.