o erro em si provavelmente está aqui.
Esse modo de análise e edição de textos do Python é bem difícil e já me deu muita dor de cabeça, por ser um tanto quanto confuso.
no caso, vou tentar desmembrar o comando open para você entender melhor
open("database", "w")
#no caso, o comando open recebe 2 argumentos. o primeiro é o nome do arquivo e o segundo é o modo em que o arquivo foi escrito.
#o segundo, é o modo em que o arquivo será aberto. Se ele estiver com um + no final, significa que se o arquivo não existir, o programa deve criá-lo.
#no seu caso, você colocou o "w". O w significa write. O que acontece é que ele pega o arquivo TXT inteiro e apaga ele.
existe também o modo R, que é apenas para leitura, e o modo "a", que é o modo append, para adicionar o texto e não apagar os já existentes.
então a escrita correta do código seria:
arquivo = open("database", "a")