Lekcja 8 - Nikola Horn
Książka telefoniczna z zapisem/odczytem JSON
import json
ksiazka_tele = {}
while True:
# Zapytanie o wybranie operacji
operacja = input(
"Wybierz operację do wykonania:\n\
1 - dopisanie pozycji do książki\n\
2 - aktualizacja pozycji książki\n\
3 - usunięcie pozycji książki\n\
4 - wydruk imion z książki\n\
5 - wydruk całej książki telefonicznej\n\
6 - wczytaj książkę z pliku\n\
7 - zapisz książkę do pliku\n\
8 - koniec programu\nPodaj kod operacji = "
)
if not operacja:
break
# Wykonanie wybranej operacji
if operacja == "1":
print("Wybrano 1")
imie = input("Wpisz imię i nazwisko: ")
#Sprawdzenie czy imię już istnieje
if imie in ksiazka_tele:
print("Taki wpis już istnieje.")
else:
telefon = input("Wpisz numer telefonu: ")
ksiazka_tele[imie]=telefon
elif operacja == "2":
print("Wybrano 2")
aktualizuj = input("Jaki wpis chcesz zaktualizować? Podaj imię i nazwisko: ")
#Sprawdzenie czy istnieje taki wpis
if aktualizuj not in ksiazka_tele:
print("Taki wpis nie istnieje.")
else:
ksiazka_tele.pop(aktualizuj)
ksiazka_tele[(input("Wpisz aktualne imię i nazwisko: "))]=(input("Wpisz aktualny numer telefonu: "))
elif operacja == "3":
print("Wybrano 3")
usun = (input("Jaki wpis chcesz usunąć? Podaj imię i nazwisko: "))
ksiazka_tele.pop(usun)
elif operacja == "4":
print("Wybrano 4")
#Drukowanie samych kluczy (ładnie)
for klucz in ksiazka_tele.keys():
print(klucz)
elif operacja == "5":
print("Wybrano 5")
#Drukowanie par klucz-wartość (ładnie)
for klucz, wartosc in ksiazka_tele.items():
print(klucz, wartosc)
elif operacja == "6":
with open("ksiazka.json") as plik:
ksiazka_tele = json.load(plik)
print(ksiazka_tele)
elif operacja == "7":
with open("jsonksiazka.json", "w", encoding = "utf8") as plik:
json.dump(ksiazka_tele, plik, indent=2, ensure_ascii=False)
elif operacja == "8":
break
else:
print("\nPodano błędny kod operacji")
# Koniec programu
print("\nKoniec programu")
Odczytywanie CSV
import csv
with open("currency.csv", "r", encoding="utf8") as plik:
reader = csv.reader(plik)
print (reader)
for wiersz in reader:
print (wiersz)
Odczytywanie .txt
with open("zadanie.txt", "r") as plik_zawartosc:
print(plik_zawartosc.read())
for linijka in plik_zawartosc:
print(linijka)
Notatki z zajęć
Snake case - przyjęło się używać go do nazw zmiennych w Pythonie - nazwa_zmiennej

PEP8 - Style Guide for Python Code

Pliki
Pliki grupowane są w folderach, a całość obsługiwana jest przez system plików (np. na Windowsie domyślnym systemem jest NTFS)
cd .. -> przechodzi folder wyżej
cd Kurs-Python - > przechodzi do folderu o podanej nazwie
cd. - zostaje w tym samym folderze
cd - change directory
Otwieranie plików w Pythonie
nasza_nazwa = open(nazwa_pliku, tryb)
plik_zawartosc = open("mojplik.txt", "r")
print (plik_zawartosc.read())
for linijka in plik_zawartosc:
print (linijka)
"r" - tryb tylko do oczytu
"w" - write - nadpisuje CAŁĄ zawartość pliku
"a" - append - dopisuje na końcu istniejących danych
plik_zawartosc.close()
zamknie plik
warto ZAWSZE zamykać pliki pod koniec pracy z nimi
With
with open("mojplik.txt","w") as plik_zawartosc:
plik_zawartosc.write("blabla")
context manager - sam nam zrobi na końcu .close()
Formaty plików
Do najpopularniejszych formatów plików istnieją gotowe biblioteki, np. do docx, pdf etc.
pypi.org

Formaty, które warto znać:
- JSON - JavaScript Object Notation
- YAML -
- .csv
Przydatne biblioteki:
- JSON
- PyYAML
- CSV
- Pandas
JSON
import json
slownik = {"Maria" : "1111", "Tadeusz" : "2222"}
print(json.dumps(slownik, indent=4))
indent=x - tworzy wcięcie
json.dumps - zamieni słownik na obiekt tekstowy/string sformatowany jak JSON
with open("jsonsave.json","w") as plik:
json.dumps(slownik, plik, indent=2)
to stworzy nam nowy plik, w którym będzie nasz słownik
json.dump - zrzuca content słownika do pliku

CSV
import csv
with open("currency.csv", "r", encoding="utf8") as plik:
reader = csv.reader(plik)
print (reader)
for wiersz in reader:
print (wiersz)
z użyciem biblioteki csv
import pandas as pd
mydataframe = pd.read_csv("currency.csv")
print(mydataframe)
z użyciem pandas
Pandas
Pandas is a Python library used for working with data sets. It has functions for analyzing, cleaning, exploring, and manipulating data. The name "Pandas" has a reference to both "Panel Data", and "Python Data Analysis

Pandas gives you answers about the data. Like:
- Is there a correlation between two or more columns?
- What is average value?
- Max value?
- Min value?
Pandas are also able to delete rows that are not relevant, or contains wrong values, like empty or NULL values. This is called cleaning the data.
