# Импортируется модуль os для удаления текстового файла.
import os

def del_contact(file_name, contact_number_for_del):
    '''Получает номер контакта. Удаляет контакт'''
    file_txt_r = open(file_name, 'r') # Открытие файла для чтения данных.
    contact_number = 0 # Начальное значение переменной для формирования номера контакта.
    list_for_new_txt = [] # Пустой список для формирования списка с контактами.
    while True: # Бесконечный цикл для обработки контактов построчно.
        data_str = file_txt_r.readline() # Получение строки контакта.
        if data_str == '': # Если строка пустая выход из цикла.
            file_txt_r.close() # Закрытие файла. 
            if contact_number_for_del > str(contact_number):
                print('Контакта с таким номером не существует')    
            break # Выход из цикла.
        contact_number += 1 # Присваевается номер контакта.
                            # С каждым проходом цикла увеличивается на единицу.
        if str(contact_number) == contact_number_for_del:
            continue # Если номер контакта совпадает с номером контакта для удаления
                     # эта строка контакта не добавляется в список list_for_new_txt.
                     # Следующий код этого цикла пропускается и переходит к
                     # следующей итерации цикла. 
        list_for_new_txt.append(data_str) # Добавляется в конец списка строка с контактом.

    os.remove(file_name) # Удаление текстового файла. Ниже будет создан новый текстовый файл.
                         # В этом файле будет отсутсвовать строка с удалённым контактом.

    while True: # Бесконечный цикл для выборки из списка list_for_new_txt строк с контактами
                # и записи их в текстовый файл.
        contact_for_wr = list_for_new_txt.pop(0) # Получает из списка элемент с индексом 0,
                                                 # присваивает его значение переменной
                                                 # contact_for_wr, а в списке 
                                                 # list_for_new_txt удаляет его.
        write_contact_txt(file_name, contact_for_wr) # Функция записи контакта в текстовый файл.
        if list_for_new_txt == []: # Если список пуст выход из цикла. 
            break # Выход из цикла.

        
