Мой вопрос может быть основным, но я не нашел ответов. Моя цель - написать программу, которая анализирует новые записи в текстовом файле и выводит их всякий раз, когда в строке больше 5 символов. Рассмотрим следующий код, который работает как задумано:
from pygtail import Pygtail
def parse(input):
for line in input:
if len(line) > 5:
print(line)
def main():
tail = Pygtail('D:\\test.txt')
while True:
parse(tail)
main()
Однако, если я хочу, чтобы функция синтаксического анализа возвращала значение, а основная функция выводила возвращаемое значение, я получаю None
снова и снова в выводе. Неверный код:
from pygtail import Pygtail
def parse(input):
for line in input:
if len(line) > 5:
return line
def main():
tail = Pygtail('D:\\test.txt')
while True:
x = parse(tail)
print(x)
main()
Я понимаю, что None
- это возвращаемое значение по умолчанию, но я не получаю, что, когда я пытаюсь сохранить более длинную строку в файле, это не имеет значения и всегда будет печатать None
. Может ли это как-то испортить смещение файла? Мне кажется, что обе версии кода должны вести себя одинаково, но это не так. Может ли кто-нибудь пролить свет на то, почему это так?