-2
我編碼此打印行:在根據時間戳
def show_line(self):
next_line = self.curr_line + 1
self.line = self.lines[self.curr_line]
y = self.line.split(' ')
z = self.lines[next_line].split(' ')
d1 = datetime.datetime.fromtimestamp(float(y[0]))
d2 = datetime.datetime.fromtimestamp(float(z[0]))
d3 = d2-d1
d3s = str(d3)
sleep_time = int(float(d3s[6::]))*1000
print_on_screen(self.line)
glib.timeout_add(sleep_time, self.show_line)
self.curr_line += 1
return False
其中「線」是包含該文件的線的陣列(I使用 readlines方法())。 在這些行的每一行中都有時間戳,用於根據屏幕上兩個字符串(d3)之間的差異在屏幕上顯示字符串 。
問題是顯示的第一行,第三個,第五個等等 並不尊重時間戳。 建議?
佛朗哥
以上是什麼問題?你告訴我們你想做什麼,但不是什麼錯誤。 – 2012-02-24 20:22:37
我很好奇glib.timeout_add。你爲什麼用這個?一個問題是,當超時完成時,它會調用你的函數self.showline,因此在調整之後:「self.curr_line + = 1」永遠不會執行... – Tom97531 2012-02-24 20:37:26
@ Tom97531不正確。 'self.curr_line + = 1'和'return False'這兩行絕對會被執行。調用'glib.timeout_add'(或者'gobject.timeout_add',因爲它似乎是爲我調用的)不會以某種方式阻止該函數的其他部分執行。 – Celada 2012-02-26 00:37:45