Чтение файла. Python
Всем привет, есть файл, который в себе содержит строку: "Device Temperature: 43 °C, CPU Load: 8 %, Device Name: KRK Switch to KPP3" нужно исправить код:
- Прога сидит в трее с часами
- у проги всего две настройки (критичная температура, путь к файлам(из нескольких источников))
- при превышении критичной температуры поверх всех окон на экран (прям на пол экрана) выводится сообщение аларм.
в аларме должна писатся температура , имя девайса (это все есть в файле)

Вот то, что я написал, но не выводит почему-то ничего. Все библиотеки импортированы, файл тоже в корень проекта запихнул. Ошибок не видит pycharm.
import os
import time
import tkinter as tk
import random
# Путь к файлу с данными о температуре
TEMP_FILE_PATH = "temp.txt"
# Критическая температура, при превышении которой нужно выводить сообщение
CRITICAL_TEMP = 50
# Функция для чтения данных из файла
def read_temp_file():
with open(TEMP_FILE_PATH, "r") as file:
data = file.read()
return data
# Функция для получения значения температуры из строки данных
def get_temp_from_data(data):
temp_str = data.split(",")[0].split(":")[1].strip()
temp = int(temp_str[:-2])
return temp
# Функция для получения имени устройства из строки данных
def get_device_name_from_data(data):
device_name = data.split(",")[2].split(":")[1].strip()
return device_name
# Функция для вывода сообщения об аварийной температуре
def show_alarm_message(temp, device_name):
root = tk.Tk()
# root.withdraw()
message = f"Device: {device_name}\nTemperature: {temp}°C\nCritical temperature exceeded!"
w = root.winfo_screenwidth()
h = root.winfo_screenheight()
x = w // 2 - 150
y = h // 2 - 75
root.geometry(f"300x150+{x}+{y}")
root.title("Temperature Alarm")
label = tk.Label(root, text=message, font=("Arial", 20), fg="red")
label.pack(expand=True, fill=tk.BOTH)
root.mainloop()
# Основной цикл программы
while True:
# Читаем данные из файла
data = read_temp_file()
# Получаем значения температуры и имени устройства
temp = get_temp_from_data(data)
device_name = get_device_name_from_data(data)
# Если температура превышает критическую, выводим сообщение
if temp > CRITICAL_TEMP:
show_alarm_message(temp, device_name)
# Ждем 10-30 секунд
time.sleep(10 + 20 * random.random())
Условие выполняется же, так как я поставил в переменную температуры: 50, а в файлике 43 стоит. Не понимаю, в чем проблема...
# Если температура превышает критическую, выводим сообщение
if temp > CRITICAL_TEMP:
show_alarm_message(temp, device_name)