【发布时间】:2015-04-24 13:43:58
【问题描述】:
我有一个 BASH 脚本正在运行,它打开一个程序 (tshark),它将一堆值写入日志文件。该脚本然后计算唯一值并将最后 3 分钟的唯一值(计数)写入日志文件 (count3m.log) 它还打开一个 python 脚本。 python 在那里显示一个窗口,其中包含来自 count3m.log 的值。由于 count3m.log 中的值每 30 秒更改一次,我想继续从 count3m 中寻找新值。我用下面的代码试了一下。它只执行一次循环。我做错了什么?
#!/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,此时您的程序完全在等待事件发生,而不是继续运行代码。 -
什么是
root.mainloop()?我认为它可能会挂起你的循环(无限循环中的无限循环)。
标签: python bash tkinter tshark