Browse Source

csv_wr

master
Jakub Škrabánek 2 days ago
parent
commit
ae6d4db4d3
  1. 94
      02_csv_writer/data.csv
  2. 21
      02_csv_writer/main.py
  3. 52
      02_csv_writer/reader.py
  4. 15
      02_csv_writer/requirements.txt
  5. 22
      02_csv_writer/writer_loop.py
  6. 130
      prikazy_pip.md

94
02_csv_writer/data.csv

@ -0,0 +1,94 @@
Datum a èas,DHT11 vlhkost,DHT11 teplota,HC-SR04 vzdálenost
2026-01-14 08:57:46,50,24,35
2026-01-14 08:57:47,33,27,81
2026-01-14 08:57:48,74,23,93
2026-01-14 08:57:49,42,21,28
2026-01-14 08:57:50,65,25,186
2026-01-14 08:57:51,33,20,90
2026-01-14 08:57:52,69,27,171
2026-01-14 08:57:53,74,23,82
2026-01-14 08:57:54,32,20,83
2026-01-14 08:57:55,68,21,75
2026-01-14 08:57:56,68,28,120
2026-01-14 08:57:57,56,21,90
2026-01-14 08:57:58,46,23,53
2026-01-14 08:57:59,52,24,58
2026-01-14 08:58:00,58,25,167
2026-01-14 08:58:01,54,22,192
2026-01-14 08:58:02,47,25,163
2026-01-14 08:58:03,49,24,52
2026-01-14 08:58:04,66,27,83
2026-01-14 08:58:05,79,22,187
2026-01-14 08:58:06,62,28,173
2026-01-14 08:58:07,46,28,88
2026-01-14 08:58:08,43,22,132
2026-01-14 08:58:09,58,23,111
2026-01-14 08:58:10,30,26,77
2026-01-14 08:58:11,37,20,79
2026-01-14 08:58:12,43,28,182
2026-01-14 08:58:13,51,20,181
2026-01-14 08:58:14,59,25,186
2026-01-14 08:58:15,55,23,35
2026-01-14 08:58:37,56,21,198
2026-01-14 08:58:38,44,24,159
2026-01-14 08:58:39,68,24,30
2026-01-14 08:58:40,57,20,109
2026-01-14 08:58:41,69,21,161
2026-01-14 08:58:42,45,22,191
2026-01-14 08:58:43,48,25,33
2026-01-14 08:58:44,40,23,198
2026-01-14 08:58:45,61,26,34
2026-01-14 08:58:46,77,21,194
2026-01-14 08:58:47,45,27,127
2026-01-14 08:58:48,68,27,179
2026-01-14 08:58:49,68,28,91
2026-01-14 08:58:50,79,28,166
2026-01-14 08:58:51,70,22,24
2026-01-14 08:58:52,66,21,181
2026-01-14 08:58:53,61,27,77
2026-01-14 08:58:54,67,26,131
2026-01-14 08:58:55,40,24,50
2026-01-14 08:58:56,46,23,174
2026-01-14 08:58:57,49,24,183
2026-01-14 08:58:58,60,22,70
2026-01-14 08:58:59,37,24,183
2026-01-14 08:59:00,48,21,178
2026-01-14 08:59:01,54,20,100
2026-01-14 08:59:02,42,28,120
2026-01-14 08:59:03,58,24,196
2026-01-14 08:59:04,35,22,195
2026-01-14 08:59:05,73,21,95
2026-01-14 08:59:06,33,20,66
2026-01-14 09:02:26,69,22,143
2026-01-14 09:02:27,44,22,59
2026-01-14 09:02:28,66,24,153
2026-01-14 09:02:29,77,28,61
2026-01-14 09:02:30,55,28,55
2026-01-14 09:02:31,42,21,154
2026-01-14 09:02:32,57,23,158
2026-01-14 09:02:33,32,27,32
2026-01-14 09:02:34,57,25,40
2026-01-14 09:02:35,68,23,157
2026-01-14 09:02:36,47,21,137
2026-01-14 09:02:37,56,26,37
2026-01-14 09:02:38,54,20,128
2026-01-14 09:02:39,63,22,77
2026-01-14 09:02:40,57,23,136
2026-01-14 09:02:41,31,20,28
2026-01-14 09:02:42,45,22,85
2026-01-14 09:02:43,34,20,182
2026-01-14 09:02:44,50,28,47
2026-01-14 09:02:45,41,25,40
2026-01-14 09:02:46,54,21,92
2026-01-14 09:02:47,43,22,85
2026-01-14 09:02:48,42,27,60
2026-01-14 09:02:49,50,21,152
2026-01-14 09:02:50,64,23,119
2026-01-14 09:02:51,36,22,104
2026-01-14 09:02:52,58,23,110
2026-01-14 09:02:53,45,28,163
2026-01-14 09:02:54,34,28,32
2026-01-14 09:02:55,67,22,124
2026-01-14 09:25:24,45,25,135
2026-01-14 09:25:25,62,26,188
2026-01-14 09:25:26,64,21,142
Can't render this file because it has a wrong number of fields in line 69.

21
02_csv_writer/main.py

@ -0,0 +1,21 @@
import csv
import datetime
import random
# definice senzorů
senzory = ["DHT11 vlhkost", "DHT11 teplota","HC-SR04 vzdálenost"]
#otevření souboru
with open("data.csv","a",newline="") as csvfile:
writer = csv.writer(csvfile) #zapisovatel
now = datetime.datetime.now() #aktualni datum a cas
if csvfile.tell() == 0:
writer.writerow(["Datum a cas"]+[senzor for senzor in senzory])
hodnoty = [
random.randint(30,80), #vlhkost
random.randint(20,28), #teplota
random.randint(20,200) #vzdalenost
]
#zapis dat
writer.writerow([now.strftime("%Y-%m-%d %H:%M:%S")] + hodnoty)

52
02_csv_writer/reader.py

@ -0,0 +1,52 @@
import csv
import matplotlib.pyplot as plt
import datetime
import art
from termcolor import colored
art.tprint("CSV reader")
with open("data.csv","r") as csvfile:
print(colored("Otevírám data.csv","blue"))
reader = csv.reader(csvfile)
next(reader,None) #kvůli hlavičce
data_cas = []
data_vlhkost = []
data_teplota = []
data_vzdalenost = []
for row in reader:
datum_cas = row[0]
try:
datetime_object = datetime.datetime.strptime(datum_cas,"%Y-%m-%d %H:%M:%S")
except ValueError:
print(f"Chybný formát data a času: {datum_cas}")
data_cas.append(datetime_object)
data_vlhkost.append(float(row[1]))
data_teplota.append(float(row[2]))
data_vzdalenost.append(float(row[3]))
#print(data_teplota) #test jestli máme nějaké hodnoty
print(colored("Data úspěšně načteny","yellow"))
print(colored("Vytvářím grafy","green"))
plt.subplot(311) # 3 řádky, 1 sloupec, 1.graf
plt.plot(data_cas,data_vlhkost, label="vlhkost")
plt.legend()
plt.xticks(visible=False) #skrýt čas na X axis (necháme jen u vzdálenosti at víme čas)
plt.title("Vlhkost")
plt.subplot(312) # 3 řádky, 1 sloupec, 2.graf
plt.plot(data_cas,data_teplota, label="teplota")
plt.legend()
plt.xticks(visible=False)
plt.title("teplota")
plt.subplot(313) # 3 řádky, 1 sloupec, 3.graf
plt.plot(data_cas,data_vzdalenost, label="vzdalenost")
plt.legend()
plt.title("vzdalenost")
plt.show()
print(colored("Děkujeme za použití naší aplikace","red"))

15
02_csv_writer/requirements.txt

@ -0,0 +1,15 @@
art==6.5
colorama==0.4.6
contourpy==1.3.3
cycler==0.12.1
fonttools==4.61.1
kiwisolver==1.4.9
matplotlib==3.10.8
numpy==2.4.1
packaging==25.0
pillow==12.1.0
pyparsing==3.3.1
python-dateutil==2.9.0.post0
six==1.17.0
termcolor==3.3.0
tqdm==4.67.1

22
02_csv_writer/writer_loop.py

@ -0,0 +1,22 @@
import csv
import datetime
import random
import time
pocet_iteraci = 30
senzory = ["DHT11 vlhkost", "DHT11 teplota","HC-SR04 vzdálenost"]
with open("data.csv","a",newline="") as csvfile:
writer = csv.writer(csvfile)
if csvfile.tell() == 0:
writer.writerow(["Datum a čas"] + [senzor for senzor in senzory])
for i in range(pocet_iteraci):
now = datetime.datetime.now()
hodnoty = [
random.randint(30,80), #vlhkost
random.randint(20,28), #teplota
random.randint(20,200) #vzdalenost
]
writer.writerow([now.strftime("%Y-%m-%d %H:%M:%S")] + hodnoty)
print(f"{i+1}/{pocet_iteraci}")
time.sleep(1)

130
prikazy_pip.md

@ -0,0 +1,130 @@
# Přehled příkazů - Python knihovny a venv
## 🌐 Virtuální prostředí (venv)
### Vytvoření venv
```cmd
python -m venv .venv
```
- `.venv` - je název složky, do které vytvoří virtuální prostředí
- Můžeš použít i jiný název, ale `.venv` je standard
### Aktivace venv
```cmd
.venv\Scripts\activate
```
- Po aktivaci uvidíš `(.venv)` před příkazovou řádkou
- **Všechny následující příkazy pip budou fungovat jen pro toto prostředí!**
### Deaktivace venv
```cmd
deactivate
```
- Vrátí tě zpět do globálního Pythonu
---
## 📦 Instalace knihoven (pip)
### Instalace jedné knihovny
```cmd
pip install <balíček>
```
### Instalace více knihoven najednou
```cmd
pip install matplotlib numpy
```
### Příklady z hodiny
```cmd
pip install termcolor
pip install matplotlib numpy
```
### Instalace konkrétní verze
```cmd
pip install termcolor==1.1.0
```
---
## 📋 Správa nainstalovaných knihoven
### Výpis všech nainstalovaných knihoven
```cmd
pip list
```
### Zobrazení info o konkrétní knihovně
```cmd
pip show termcolor
```
### Aktualizace knihovny
```cmd
pip install --upgrade termcolor
```
### Odinstalování knihovny
```cmd
pip uninstall termcolor
```
---
## 💾 Práce s requirements.txt
### Vytvoření seznamu knihoven (export)
```cmd
pip freeze > requirements.txt
```
- Uloží seznam všech nainstalovaných knihoven do souboru
- Užitečné pro sdílení projektu s jinými
### Instalace ze seznamu (import)
```cmd
pip install -r requirements.txt
```
- Nainstaluje všechny knihovny ze souboru najednou
- Použiješ, když někdo sdílí projekt s tebou
---
## 🔍 Další užitečné příkazy
### Kontrola verze pip
```cmd
pip --version
```
### Aktualizace pip samotného
```cmd
python -m pip install --upgrade pip
```
### Vyhledání knihovny
```cmd
pip search <název>
```
*(Poznámka: tento příkaz je momentálně vypnutý na PyPI, používej [pypi.org](https://pypi.org))*
---
## 🎯 Typický workflow
1. Vytvoř projekt (složku)
2. Vytvoř venv: `python -m venv .venv`
3. Aktivuj venv: `.venv\Scripts\activate`
4. Nainstaluj knihovny: `pip install termcolor`
5. Programuj! 💻
6. Před koncem práce: `pip freeze > requirements.txt`
7. Deaktivuj: `deactivate`
---
## ⚠️ Důležité
- **Vždy aktivuj venv před instalací knihoven!**
- Složku `.venv` **NIKDY** nepřidávej do Gitu (dej ji do `.gitignore`)
- Místo toho sdílej `requirements.txt`
Loading…
Cancel
Save