Practice: kiosk log

Extract city, shillings, date from kiosk.txt into report.csv.

Hash nothing — extract date, city, and shillings from kiosk.txt and write report.csv.

Goal

Print three parsed rows and the CSV.

from pathlib import Path
Path("kiosk.txt").write_text(
    "2026-01-12 Nairobi 126.0\n2026-01-12 Mombasa 198.0\n2026-01-13 Kisumu 62.0\n",
    encoding="utf-8",
)
print("wrote kiosk.txt")
from pathlib import Path
import re
text = Path("kiosk.txt").read_text(encoding="utf-8")
pat = re.compile(r"(?P<date>\d{4}-\d{2}-\d{2})\s+(?P<city>\w+)\s+(?P<kes>[\d.]+)")
rows = [m.groupdict() for m in pat.finditer(text)]
print(rows)
print("cities", {r["city"] for r in rows})
lines = ["date,city,kes"] + [f'{r["date"]},{r["city"]},{r["kes"]}' for r in rows]
Path("report.csv").write_text("\n".join(lines) + "\n", encoding="utf-8")
print(Path("report.csv").read_text(encoding="utf-8"))

Click on report.csv.