Por favor, seja o mais claro possível, eu não entendi o que você quer.
Mas vamos lá, veja, seu código está recuperando um nome de um arquivo chamando nomedoficheiro
, e armazenando em uma variável base, logo abaixo, você está renomeando este arquivo para o mesmo nome, e isso não faz sentido.
Você falou em como criar uma variável em armazenar o valor "agenda.xml"
, isso é simples.
base = "agenda.xml"
nomedoficheiro = "arquivo.xml"
logo,
os.rename("nomedoficheiro, base) #base --> variável criada logo acima.
mas se o que queres é pegar o nome do arquivo completamente e dinamicamente, uma das maneiras de fazer, é fazer como você esta fazendo, recuperando o nome do arquivo e depois concatenando a extensão ".xml"
, outra maneira é usando LIST COMPREHENSION.
nomedoficheiro = "agenda.xml"
base = [nomedoficheiro for _, _, file in os.walk('.') if nomedoficheiro in file][0]
os.rename(nomedoficheiro, base)
De toda forma é a mesma coisa, eu não sai do lugar fazendo isso, é muito mais fácil digitar apenas o nome do documento, pois ao que parece, o nome do mesmo não vai mudar, o lado bom de usar List Comprehension é que dá para verificar se o arquivo existe ou não, coisa essa que você já havia feito antes.
abraço!