📚 Как прочитать файл с конца в Python: пошаговое руководство

Чтобы прочитать файл с конца в Python, вы можете использовать метод seek() для перемещения указателя файла в нужную позицию, а затем прочитать данные в обратном порядке. Ниже приведен пример:

filename = "имя_файла.txt"

with open(filename, "rb") as file:
    file.seek(0, os.SEEK_END)
    position = file.tell()
    file.seek(position - 2, os.SEEK_SET)
    
    while position >= 0:
        byte = file.read(1)
        print(byte.decode("utf-8"), end="")
        position -= 1
        file.seek(position - 2, os.SEEK_SET)

В этом примере мы открываем файл в режиме чтения в двоичном формате ("rb"). Затем мы используем метод seek() для перемещения указателя файла в конец файла (os.SEEK_END) и определяем текущую позицию указателя с помощью метода tell(). Затем мы перемещаем указатель на две позиции назад (position - 2) и начинаем читать файл в обратном порядке. Мы декодируем каждый байт из двоичного формата в строку с помощью метода decode() и выводим его на экран.

Детальный ответ

Как прочитать файл с конца в Python

Один из способов прочитать файл с конца в Python - это использовать модуль os и метод seek(). Следуя этому подходу, мы можем переместить указатель файла на определенное смещение относительно его конца.


import os

def read_file_from_end(file_path, num_lines):
    with open(file_path, 'rb') as file:
        file.seek(0, os.SEEK_END)
        file_size = file.tell()

        lines = []
        newline_count = 0

        for i in range(file_size - 1, -1, -1):
            file.seek(i)
            char = file.read(1)

            if char == b'\n':
                newline_count += 1

                if newline_count == num_lines:
                    break
            lines.append(char.decode())

        lines.reverse()
        return ''.join(lines)

file_path = 'file.txt'
num_lines_to_read = 5
content = read_file_from_end(file_path, num_lines_to_read)
print(content)

В этом примере, функция read_file_from_end() принимает путь к файлу и количество строк, которое нужно прочитать с конца. С помощью метода seek() мы перемещаем указатель файла на начало и определяем его размер с помощью метода tell(). Затем мы идем назад через файл, считывая символы, и подсчитываем количество новых строк. Когда мы достигаем желаемого количества строк, мы останавливаемся и возвращаем их в правильном порядке с помощью метода reverse().

Обратите внимание, что в примере мы читаем файл в режиме бинарного чтения ('rb'), чтобы избежать проблем с кодировкой. Если файл содержит текст в другой кодировке, вам может потребоваться явно указать нужную кодировку, используя параметр encoding функции open().

Теперь вы можете использовать эту функцию для чтения файла с конца в Python и получить нужные строки данных.

Видео по теме

Работа с файлами в Python. Чтение и запись данных

Как читать из файла в Питоне? Подготовка к ЕГЭ по Информатике 2022.

#51. Функция open. Чтение данных из файла | Python для начинающих

Похожие статьи:

🐍 Что делать, если Python не запускается? 🛠️

🔍Как установить точность в Python float?

🐍 Как писать на Питоне в командной строке без хлопот:

📚 Как прочитать файл с конца в Python: пошаговое руководство

💡 Сколько байт занимает int в Python? Ответ и объяснение

🖥️ Как отформатировать строку в Python: руководство для начинающих

Как использовать параллельные процессы в Python для оптимизации работы