Извлечь только последнюю строку с помощью функции read () - PullRequest
0 голосов
/ 09 апреля 2019

Я использую следующий код для анализа текста (у меня больше кода для анализа):

with open(os.path.join(root, file)) as auto:
    a = auto.read(50000)
    for line in auto:
      print(line)

У меня вопрос: как мне распечатать только последнюю строку файла?

Я пробую этот подход, но не думаю, что это хороший вариант, поскольку он не возвращает никакого сообщения:

with open(os.path.join(root, file)) as auto:
            a = auto.read(50000)
            lines = a.readlines()
            last_line = lines[-1]
            for line in auto:
                print(last_line)

Как мне распечатать последнюю строку файла с помощью auto.read ()?

Спасибо

Ответы [ 2 ]

1 голос
/ 09 апреля 2019

Возможно:

list.txt :

sdfs
sdfs
fg34
345
gn
4564

Следовательно :

with open('list.txt') as fileObj:
    print(list(fileObj)[-1])

Использование pathlib:

from pathlib import Path
print(Path('list.txt').read_text().splitlines()[-1])

ВЫХОД :

4564
0 голосов
/ 09 апреля 2019

Вы написали, что

Я пробую этот подход, но я не думаю, что это хороший вариант, поскольку он не возвращает никакого сообщения:

, а затемпопросил технику, используя read().Тем не менее, я думаю, что ваш подход является разумным, и он работает (хотя я подозреваю, что файл, который вы читаете, имеет пустую строку в качестве последней строки файла).Например, это действительно печатает последнюю строку файла:

import os
with open('test.py') as auto:
    lines = auto.readlines()
    last_line = lines[-1]
    print(last_line)
...