Форум сайта python.su
0
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)
Офлайн
61
datetime.fromtimestamp(int(v)).strftime("%H:%M:%S")
Отредактировано ZerG (Окт. 19, 2022 12:43:10)
Офлайн
0
ZerGЧерт возьми, прав как никогда, благодарю
Офлайн
0
Вновь время появилось для моей “головной боли”, да и не дают забыть о ней. Сейчас допилить немного решил это все, и обратил внимание, что дата у меня следующего формата: (минуты:секунды:миллисекунды), а не (часы:минуты:секунды). Получается нужно разделить на 60 или как?
Офлайн
857
Stepan89Миллисекунда - это одна тысячная секунды.
дата у меня следующего формата: (минуты:секунды:миллисекунды), а не (часы:минуты:секунды). Получается нужно разделить на 60 или как?
Stepan89Что именно? Где код твой?
Сейчас допилить немного решил это все
Офлайн
0
Вот он, ненавистный)
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()
Офлайн
857
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)
Офлайн
61
Может пора уже таки прочитать учебник по питону? А то каждая строка у вас - угадай поле чудес -
если не угадалось пишем на форум
При том что все вопросы именно из учебника
Офлайн
0
*thanks*
Офлайн