›_ebskola.lv
Prog I · 6. tēma · 6 stundas - Python · CSV · JSON · faili

Datu pastāvība //
un analīze

Saglabā un nolasi datus failos starp programmām. Apgūsti CSV un JSON - pamatu jebkurai datu lietotnei.

6 stundas CSV · JSON · open() Quiz + Highscore
# 01 stundu plāns

6 stundas - faili, CSV, JSON un analīze

noslēguma projekts
fails.txt with open("f") as f: f.read() "r" lasīt · "w" rakstīt · "a" pievienot // open() + with
Python · failiI/O

Failu lasīšana un rakstīšana

open() režīmi ("r"/"w"/"a"), with konteksta pārvaldnieks, teksta rindas, UTF-8.

6.1 stundaatvērt ↗
Google Sheets → CSV vārds punkti datums Anna 85 Jānis 92 Eksportēt CSV // Google Sheets
Google Sheetsdigitālie rīki

Digitālais rīks: Google Sheets

Datu vākšana Sheets, eksportēšana CSV, ielāde Python ar csv.reader(), datu apstrāde.

6.2 stundaatvērt ↗
Neapstrādāti Anna, 85 , 92 Jānis,, filter() strip() sorted() Tīri dati Anna 85 Jānis 92 // filter + sorted
Python · filtertransformācija

Datu tīrīšana un transformācija

strip(), filter(), sorted(key=lambda), None vērtību apstrāde.

6.3 stundaatvērt ↗
TOP 5 Highscore 🥇Anna95 🥈Pēteris88 🥉Marta82 Jānis75 sorted(dati, key=lambda x: x[1], reverse=True) // highscore.csv
CSV · sortedpastāvība

Rezultātu tabulas un datu pastāvība

Highscore CSV tabula, sorted(key=lambda), TOP-N filtrēšana, CSV append un pārlasīšana.

6.4 stundaatvērt ↗
Skoru vizualizācija Anna 95 Pēteris 88 Marta 82 Jānis 75 '█' * (punkti // 5) // ASCII bar chart
vizualizācijaanalīze

Datu vizualizācija un analīze

ASCII bāras diagramma terminālī, min()/max()/sum(), vidējā vērtība, matplotlib intro.

6.5 stundaatvērt ↗
$ python quiz.py
Python · JSON · CSVprojekts

Noslēguma projekts: Quiz spēle ar Highscore

Jautājumi no JSON faila, atbildes validācija, rezultāta saglabāšana CSV, TOP-5 highscore.

6.6 projektsatvērt ↗
# 02 špikeris

Failu I/O un CSV/JSON špikeris

Failu lasīšana, rakstīšana, CSV un JSON

import csv, json

# Teksta fails - lasīšana
with open("dati.txt", "r", encoding="utf-8") as f:
    saturs = f.read()

# CSV - pievienot rindu
with open("highscore.csv", "a", newline="") as f:
    csv.writer(f).writerow(["Anna", 95])

# CSV - nolasīt visu
with open("highscore.csv", "r") as f:
    dati = list(csv.reader(f))

# JSON - saglabāt
with open("jautajumi.json", "w", encoding="utf-8") as f:
    json.dump({"jautajumi": [...]}, f, ensure_ascii=False, indent=2)

# JSON - ielādēt
with open("jautajumi.json", encoding="utf-8") as f:
    dati = json.load(f)

# TOP-5 highscore
top5 = sorted(dati, key=lambda r: int(r[1]), reverse=True)[:5]
$ python quiz.py # JSON jautājumi + CSV highscore # with open(...) garantē, ka fails vienmēr tiks aizvērts