Она ничего не удаляет, вы сами убрали первую строку, выполнив это действие:
line = read_log.readline()
(причем бессмысленное действие, для чего оно?)
Прочитав строку из файла, вы сдвинули указатель на следующую строчку, соответственно, цикл
for line in read_log:
начался уже со второй строки.
почему-то срабатывает после завершения других команд
Оно срабатывает при условии, если
action не равно
'close', ну и если вы вводите
delete, то и выводится
Command not defined!, так как delete != close.
Используйте
elif, если вам нужны дополнительные проверки в одном блоке
if
if action == 'add':
# ...
elif action == 'check'
# ...
elif action == 'delete'
# ...
else:
print('\nCommand not defined!\n')