в этом последнем коде была проблемка
когда вызывалась функция timenows
она отпечатывала время и запускала таймер в себе еще раз что ускоряло время на 1 тик таймера
это был полный ужас, все время крашелось
обошел через дополнительную функцию и код работает стабильно
from threading import Timer
import datetime as dt
from datetime import datetime
x=2
setlogtimer = 1
now = datetime.now()
_now = now - now
texttime_gtm =''
texttime_frame = ''
def timenows():
global _now
global setlogtimer
global texttime_gtm
global texttime_frame
if x==1:
now = datetime.now() # current date and time
texttime_gtm = now.strftime("%H:%M:%S")
timer = Timer(1, timenows)
timer.start()
print(texttime_gtm)
return texttime_gtm
if x==2:
sec1 = _now + dt.timedelta(seconds=1)
_now = sec1
timer = Timer(1, timenows)
timer.start()
print(sec1)
texttime_frame =str(sec1)
return texttime_frame
timenows()
def ejecttime_frame():
global texttime_frame
texttime_frame = str(texttime_frame)
print (texttime_frame)
return texttime_frame
ejecttime_frame()
при вызове ejecttime_frame она отпечатывает таймкод на момент вызова отсчитывая от запуска программы
вот пример записи в файл текстового кода с тайсштампом
def makelogs(data):
global logging
global frametime
global localtime
global timeing
#if logging == 'on':
x = package.setup.getsettings.getlogstatus()
if x =='on':
with open(file_log, "r+", encoding="utf-8") as file_object:
# Move read cursor to the start of file.
file_object.seek(0)
# If file is not empty then append '\n'
sata = file_object.read()
if len(sata) > 0 :
file_object.write("\n")
# Append text at the end of file
tim = ejecttime_frame() + ' | '
file_object.write(tim + data)
else:
pass
а вся эта шаурма запускается из главного скрипта
timenowsdef = threading.Thread(target=timenows())
timenowsdef.start()