В семействе операционных систем Linux существует одна прекрасная консольная утилита — tail
. Она предназначена для случаев, когда нам не нужно читать весь файл, а достаточно просмотреть только несколько последних строк.
Напишите аналог этой утилиты.
Формат ввода
Пользователь вводит имя файла (F), а затем количество строк (N), которые он хочет увидеть.
Формат вывода
Выведите N последних строк файла F.
Пример
Ввод
# Пользовательский ввод:
some_file.txt
2
# Содержимое файла some_file.txt
1 строка
2 строка
3 строка
4 строка
5 строка
Вывод
4 строка
5 строка
Решение
Если вспомнить, что можно воспользоваться срезами, то задача решается элементарно.
Считываем файл любым удобным для нас способом и построчно помещаем его в список. С помощью среза обираем последние N строчек (последние N элементов) и выводим их.
Посмотреть код
Решение
Python
file_name = input().strip()
lines = int(input())
with open(file_name, encoding='UTF-8') as file:
data = [string for string in file.read().split('\n') if string]
print('\n'.join(data[-lines:]))
Решение
Python
file_name = input()
lines = int(input())
data = []
with open(file_name) as file:
for string in file:
data.append(string)
for string in data[-lines:]:
print(string.strip())