У меня есть сценарий BASH, который открывает программу (tshark), которая записывает кучу значений в файл журнала. Затем скрипт подсчитывает уникальные значения и записывает (подсчет) значений uniques из последних 3 минут в файл журнала (count3m.log). Он также открывает скрипт python. Питон должен показать окно со значениями из count3m.log. Поскольку значение в count3m.log изменяется каждые 30 секунд, я хочу продолжать искать новое значение из count3m. Я попробовал это с помощью кода ниже. Он выполняет цикл только один раз. Что я делаю не так?Пока цикл не работает при использовании Tkinter
#!/usr/bin/env python
import sys
import re
import time
from Tkinter import *
while True:
root = Tk()
count3m = open('count3m.log','r')
countStart = open('countStart.log','r')
minutes = Label(root, text="Uniq signals < 3m ago:")
minutes.grid(row=0, column=0)
minutes = Label(root, text=count3m.read())
minutes.grid(row=1, column=0)
count3m.close
minutes = Label(root, text="Uniq signals since start:")
minutes.grid(row=0, column=1)
minutes = Label(root, text=countStart.read())
minutes.grid(row=1, column=1)
countStart.close
time.sleep(5)
print "test"
root.mainloop()
Когда ваш код получает 'root.mainloop()' это "по существу" останавливается. 'root.mainloop()' запускает Tkinter, и в этот момент ваша программа полностью ждет события, а не продолжения запуска кода. – Jkdc
Что такое 'root.mainloop()'? Я думаю, что это может повесить вашу петлю (бесконечный цикл внутри бесконечного цикла). – m0dem