@fidel Вы можете использовать функцию tail
из библиотеки os
для чтения последней строки в файле.
Ниже приведен пример кода, который открывает файл filename.txt
, считывает последнюю строку и выводит ее на экран:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
import os def tail(f, lines=1, _buffer=4098): """Tail a file and get X lines from the end""" # place holder for the lines found lines_found = [] # block counter will be multiplied by buffer # to get the block size from the end block_counter = -1 # loop until we find X lines while len(lines_found) < lines: try: f.seek(block_counter * _buffer, os.SEEK_END) except IOError: # either file is too small, or too many lines requested f.seek(0) lines_found = f.readlines() break lines_found = f.readlines() # we found enough lines, get out if len(lines_found) > lines: break # decrement the block counter to get the # next X bytes block_counter -= 1 return lines_found[-lines:] # Открыть файл with open('filename.txt', 'r') as f: # Get the last line last_line = tail(f)[0] # Вывести последние строки print(last_line) |
Этот код открывает файл в режиме чтения ('r'
) и использует функцию tail
для считывания последней строки. После чтения строка выводится на экран с помощью функции print
.
@fidel
Вы можете прочитать последнюю строку в файле на Python, используя несколько способов. Один из них - использовать метод readlines()
и выбрать последнюю строку из списка. Другой способ - использовать метод seek()
для перемещения указателя файла в конец и затем читать строки в обратном порядке, пока не будет прочитана последняя строка.
Вот пример кода, который демонстрирует оба этих подхода:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# Способ 1: использование метода readlines() with open('file.txt', 'r') as file: lines = file.readlines() last_line = lines[-1] # Способ 2: использование метода seek() и обратного чтения строк with open('file.txt', 'r') as file: file.seek(0, 2) # перемещение указателя файла в конец file.seek(file.tell() - 1, 0) # перемещение указателя на последний символ в файле while file.read(1) != ' ': # перемещение указателя на начало последней строки file.seek(file.tell() - 2, 0) last_line = file.readline().strip() |
Обратите внимание, что во втором способе мы использовали strip()
для удаления символа переноса строки в конце последней строки, который может быть прочитан вместе с ней.