У меня есть несколько функций и кнопок с полями ввода, а также список и чтобы его сохранить данные берутся из файла, а потом передаются в список. Мне нужно добавлять, изменять и удалять данные в случае чего-либо. Добавление я сделал, а потом изменение и удаление как-то не получается.
#тут открывается файл и передается в список all_words
file2 = open('imena.txt', "r")
all_words = []
line = file2.readline().split(', ')
while line:
    all_words.extend(line)
    line = file2.readline().split()
file2.close()
#тут вывод всех имён из файла
def imena():
    file1 = open('imena.txt', "r")
    all_words = []
    line = file1.readline().split()
    while line:
        all_words.extend(line)
        line = file1.readline().split()
    im2 = all_words
    print('Список имён:')
    t = -1
    for i in range(len(im2)):
        t = t + 1
        print(t,im2[i])
    file1.close()
#тут добавление имени в файл
def dob_im():
    a2 = ln3.get()
    file = open('imena.txt', "r+")
    file.write(str(a2) + ', ')
    all_words = []
    line = file.readline().split()
    while line:
        all_words.extend(line)
        line = file.readline().split()
    file.close()
#тут я попробовал сделать изменение 
def izm_im():
    a3 = ln4.get()
    a4 = ln5.get()
    file = open('imena.txt', "r+")
    all_words = []
    line = file.readline().split()
    while line:
        all_words.extend(line)
        line = file.readline().split()
    all_words.insert(int(a3),str(a4))
    print(all_words)  
    file.close()
#удаление пока не делал, т.к. изменение не получилось
Список изменяется, но как его обратно записать в файл, чтобы оно не просто добавилось к старому, а изменилось? То есть по идее файл должен стать пустым, а потом должен быть заполнен содержимым списка.
Команда 
os.system(r'nul>imena.txt')
(вроде такая) вызывает ошибку отказа в доступе.