Форум сайта python.su
xam1816Странная штука, исправил на “Время” при нажатии выдаёт.
out += f'{k} = {datetime.fromtimestamp(v).strftime(“%H:%M:%S”)}\n'
Exception in Tkinter callback Traceback (most recent call last): File "C:\Python\lib\tkinter\__init__.py", line 1705, in __call__ return self.func(*args) File "D:\Рабочий стол\time.py", line 48, in on_click text = format_data(data) File "D:\Рабочий стол\time.py", line 41, in format_data out += f'{k} = {datetime.fromtimestamp(v).strftime("%H:%M:%S")}\n' TypeError: an integer is required (got type str)
Офлайн
datetime.fromtimestamp(int(v)).strftime("%H:%M:%S")
Отредактировано ZerG (Окт. 19, 2022 12:43:10)
Офлайн
ZerGЧерт возьми, прав как никогда, благодарю
Офлайн
Вновь время появилось для моей “головной боли”, да и не дают забыть о ней. Сейчас допилить немного решил это все, и обратил внимание, что дата у меня следующего формата: (минуты:секунды:миллисекунды), а не (часы:минуты:секунды). Получается нужно разделить на 60 или как?
Офлайн
Stepan89Миллисекунда - это одна тысячная секунды.
дата у меня следующего формата: (минуты:секунды:миллисекунды), а не (часы:минуты:секунды). Получается нужно разделить на 60 или как?
Stepan89Что именно? Где код твой?
Сейчас допилить немного решил это все
Офлайн
Вот он, ненавистный)
from pysnmp.entity.rfc3413.oneliner import cmdgen from datetime import datetime import tkinter as tk def on_clickReturn(e): on_click() def get_data_from_sensor(ip): cmdGen = cmdgen.CommandGenerator() errorIndication, errorStatus, errorIndex, \ varBindTable = cmdgen.CommandGenerator().bulkCmd( cmdgen.CommunityData('test-agent', 'public'), cmdgen.UdpTransportTarget((ip, 161)), 0, 25, ('1.3.6.1.4.1.41927.2.15.2.6'), # Температура ('1.3.6.1.4.1.41927.2.15.2.7'), # Вольтаж ('1.3.6.1.4.1.41927.2.15.2.1'), # Входящий оптический сигнал ('1.3.6.1.4.1.41927.2.15.1.4'), # Время работы ) if errorIndication: return errorIndication else: if errorStatus: return'%s at %s' % ( errorStatus.prettyPrint(), errorIndex and varBindTable[-1][int(errorIndex) - 1] or '?' ) else: out = {} dictData = {'SNMPv2-SMI::enterprises.41927.2.15.2.6.0': 'Температура', 'SNMPv2-SMI::enterprises.41927.2.15.2.7.0': 'Вольтаж', 'SNMPv2-SMI::enterprises.41927.2.15.2.1.0': 'Входящий оптический сигнал', 'SNMPv2-SMI::enterprises.41927.2.15.1.4.0': 'Время работы' } for varBindTableRow in varBindTable: for name, val in varBindTableRow: out.update({dictData[name.prettyPrint()]: val.prettyPrint()}) return out def format_data(data): out = '' for k, v in data.items(): if k == 'Время работы': out += f'{k} = { datetime.fromtimestamp(int(v)).strftime("%H:%M:%S")}\n' else: out += f'{k} = {v}\n' return out def on_click(): ip = sv.get() data = get_data_from_sensor(ip) text = format_data(data) text_area.insert(1.0, text) root = tk.Tk() sv = tk.StringVar() lbl = tk.Label(text='IP ОП FORO').pack() entry = tk.Entry(textvariable=sv, width=60) entry.pack() btn = tk.Button(text='получить данные', command=on_click) btn.pack() text_area = tk.Text(width=60, height=5) text_area.pack() root.bind ('<Return>', on_clickReturn) root.mainloop()
Офлайн
Stepan89 здесь писал
Stepan89
Время работы показывает в миллисекундах, хотелось бы в часах и минутах
xam1816out += f'{k} = {datetime.fromtimestamp(v).strftime("%H:%M:%S")}\n'
help(datetime.datetime.fromtimestamp)
fromtimestamp(...) method of builtins.type instance
timestamp[, tz] -> tz's local time from POSIX timestamp.
Отредактировано py.user.next (Ноя. 8, 2022 11:03:17)
Офлайн
Может пора уже таки прочитать учебник по питону? А то каждая строка у вас - угадай поле чудес -
если не угадалось пишем на форум
При том что все вопросы именно из учебника
Офлайн
*thanks*
Офлайн