Premessa sono neofita del Python.

Ho provato a scrivere un programmino che dato un file di testo, permetta di inserire (ad una certa riga) o cancellare una parola in un testo.

codice:
def inserimento(elem, riga):
    f=open("./Testo.txt", 'r')

    lst_str = f.readlines()

    if int(riga) > len(lst_str):
        print "     Indice troppo alto."
        f.close()
    else:
        lst_str[int(riga) - 1] = lst_str[int(riga) - 1][:-1] + " " + elem + "\n"
        f.close()


        f = open("./Testo.txt", 'w')    
        f.writelines(lst_str)
        f.close()

codice:
def cancellazione(elem):        
    f=open("./Testo.txt", 'r')

    lst_str = f.readlines()
    lst_str_new = None
    
    conta = sum ([elList.count(elem) for elList in lst_str])
   
    if conta == 0:
        print "     Elemento %s non trovato" %elem
    else:
        print "     Sono state trovate %d occorrenze di %s" %(conta, elem)

    f.close()
    
    # si esegue il replace di elem con la stringa vuota ""
    f = open("./Testo.txt", 'w')    
    lst_str_new = [elList.replace(elem, "") for elList in lst_str]
    f.writelines(lst_str_new)    
    f.close()

Queste due funzioni funzionano. Solo che prima avevo cercato di aprire il file in "r+" ma la soluzione non è ottimale. Sapete spiegarmi il motivo? Grazie