Telemetria z CSV
Parser strumienia z „Przetwórz cały strumień” wciąż czyta dwie linie, które ktoś wkleił w program. Stacja naziemna dostarcza teraz porządny eksport, telemetry.csv, z wierszem nagłówka, i zmienia się on co kilka sekund.
Czytaj sam plik, modułem stworzonym do tego, a potem wybierz najgorętszy odczyt.
Ukończ etap 1, aby odblokować ten etap.
Zastąp stary parser i jego napis feed: otwórz telemetry.csv z newline="", przejdź pętlą po csv.DictReader(csv_file) i wypisz każdy wiersz w tym samym formacie co wcześniej:
09:30:05 ENG-2: 412.5 C 09:30:05 TANK-1: 78.3 % 09:30:10 CABIN: 101.2 kPa 09:30:10 ENG-2: 415.0 C 09:30:15 ENG-1: 455.2 C 09:30:15 ENG-3: 98.6 C 09:30:15 TANK-1: 78.1 %
Każdy row to słownik z kluczami z nagłówka: row["sensor"], row["value"] i tak dalej. Linie zapisujące plik zostaw bez zmian.
Ukończ etap 1, aby odblokować ten etap.
W trakcie pętli trzymaj najgorętszy odczyt w stopniach Celsjusza, jednostka C, w hottest i wypisz go po odczytach:
Najgorętszy: ENG-1 455.2 C o 09:30:15
Porównuj float(row["value"]), a nie tekst: jako napis "98.6" jest po "455.2".
Podpowiedzi
Import modułów systemowych
# Moduł to skrzynka z narzędziami, którą ktoś już zbudował i przetestował za Ciebie
# Zwykły import wczytuje cały moduł
import sys
import platform
import math
# from ... import wczytuje tylko jedno narzędzie
from math import sqrt
# as nadaje modułowi krótszy przydomek
import random as rng
# Przy zwykłym imporcie: nazwa modułu, kropka, potem narzędzie
print("Wersja Pythona:", platform.python_version())
print("System:", platform.system())
print("Python mieszka w:", sys.executable)
# math zawiera stałe, których nie chciałbyś wpisywać z pamięci
radius_km = 6371
print("Obwód Ziemi:", round(2 * math.pi * radius_km), "km")
# sqrt przyszło samo, więc nie potrzebuje kropki przed sobą
print("Pierwiastek kwadratowy z 9:", sqrt(9))
# rng to po prostu przydomek dla random
print("Losowy dzień roku marsjańskiego:", rng.randint(1, 687))
Oddziel argumenty przecinkami. Każde uruchomienie przekazuje je jako sys.argv[1:].