#python
#python
Вопрос:
Я не думаю, что заголовок действительно говорит о моей проблеме, но я не знаю, как ее сформулировать.
В любом случае, я печатаю из файла журнала все строки, затем я запоминаю последнюю строку в переменной. Затем я использую цикл for, чтобы снова просмотреть весь файл, но я использую тот факт, что у него есть время в начале каждой строки, чтобы проверить, больше ли время, чем в последней строке, которую я сохранил при последней печати всех строк.
Теперь мы переходим к проблеме, которая у меня есть. Он по-прежнему печатает последнюю строку, даже если я этого тоже не хочу.
Это может сбить с толку, поэтому позвольте мне использовать вывод
['16', '31', '18']
[16:31:18] [Async Chat Thread - #121/INFO]: <seba_www> cat?
# the above line is the last line it printed the first time it went trough all the lines
# and I don't want to print it
['16', '31', '19']
[16:31:19] [Async Chat Thread - #121/INFO]: <seba_www> wdasdww
# the above line is the new line I want to be printed
Я попытался исправить это с помощью простого оператора if:
if line != last_line:
print(line)
но он все равно печатает ее…
Это может быть действительно грязно, но я собираюсь поместить сюда весь блок кода, возможно, это поможет:
for line in logs:
print(line)
while True:
time.sleep(10)
last_line = line
s = last_line.split()
s1 = s[0]
if "[" in s1:
d2 = split(s1)
d = s1.find("[")
del d2[d]
d1 = s1.find("]")
del d2[d1 -1]
d2 = listToString(d2)
lastLine_list = d2.split(':')
logs = open(os.path.join(sys.path[0], 'latest1.log'))
for line in logs:
s = line.split()
s1 = s[0]
if "[" in s1:
d2 = split(s1)
d = s1.find("[")
del d2[d]
d1 = s1.find("]")
del d2[d1 - 1]
d2 = listToString(d2)
d2list = d2.split(":")
print(d2list)
if line != last_line:
if d2list[0] >= lastLine_list[0]:
if d2list[1] >= lastLine_list[1]:
if d2list[2] >= lastLine_list[2]:
print(line)
time.sleep(5)
logs.close()
Комментарии:
1. Вы убедились, что это на самом деле последняя строка, и что это не пустая строка в качестве последней строки в файле?
2. Да, у меня есть, проблема здесь не в этом.
Ответ №1:
Что произойдет, если вы попробуете эту строку
if line != last_line:
print(line)
как
if last_line not in line:
print(line)
?
Комментарии:
1. Я работал. Большое спасибо, я до сих пор не знаю, почему, но это работает именно так. Я приму этот ответ через 3 минуты, так как он не позволяет мне прямо сейчас.