Я пытаюсь периодически записывать некоторые измерения в текстовый файл.(некоторые журналы сортировки).
Для периодического запуска функции существует класс RepeatTimer.И чтобы запустить функцию обновления файла, у меня есть функция VTlog (), как показано ниже.
class RepeatTimer(Thread):
def __init__(self, interval, function, iterations=0, args=[], kwargs={}):
Thread.__init__(self)
self.interval = interval
self.function = function
self.iterations = iterations
self.args = args
self.kwargs = kwargs
self.finished = Event()
def run(self):
count = 0
while not self.finished.isSet() and (self.iterations <= 0 or count < self.iterations):
self.finished.wait(self.interval)
if not self.finished.isSet():
self.function(*self.args, **self.kwargs)
count += 1
def cancel(self):
self.finished.set()
def LogVT():
tgt_picks = [t1,t2] #modify here for selective targets
for tgt in tgt_picks:
tt = tgt
file = ('c:/vtlogs_%s.txt' % str(tt.target_name))
x = str(tt.voltage('v_1p05_gfx_uncore')) + ', ' + str(tt.voltage('v_1p5_sm')) + ', ' + str(tt.temperature('pch_temp'))
q = time.strftime('%m/%d/%y, %H:%M:%S')
filehandle = open(file, 'a')
filehandle.write('\n' + q + ', ' + x)
filehandle.close()
time.sleep(3)
logtimer = RepeatTimer(60.0, LogVT)
logtimer.start()
'x' и 'q' работают отдельно при запросе в автономном режиме.t1 и t2 - это некоторые системы, соединенные с устройством измерения напряжения и температуры.API уже запущен.
Моя проблема в том, что я получаю это во время выполнения:
Traceback (most recent call last):
File "C:\Python25\lib\logging\__init__.py", line 750, in emit
self.stream.write(fs % msg)
ValueError: I/O operation on closed file
Любое объяснение, почему ??