Alguém me ajuda nesta atividade?

Estou com dificuldade de fazer esta atividade, vou colocar o enunciado aqui para que melhor entendimento:
Escreva um programa que solicite um nome de arquivo, abra esse arquivo e leia o arquivo, procurando por linhas do formulário:
X-DSPAM-Confiança: 0,8475
Conte essas linhas e extraia os valores de ponto flutuante de cada uma das linhas e calcule a média desses valores e produza uma saída conforme mostrado abaixo. Não use a função sum() ou uma variável chamada sum em sua solução.

O código que eu fiz:

fname = input("Enter file name: ")
fh = open(fname)
cont = 0
totNum = 0
for line in fh:
    if not line.startswith("X-DSPAM-Confidence:"):
        continue
    fat = line[20:26]
    convert = float(fat)
    totNum += convert
    cont = cont + 1
    print(line)
media = convert / cont
print(media)
print("Done")

Aqui esta o arquivo de texto para quem quiser testar:

mbox-short.txt (94,3,KB)

Eu estou com dificuldade de realizar a media dos valores, talvez eu não tenha feito o recorte correto dos valores na String, queria que alguém pudesse me ajudar ou me explicar o que eu estou errando.
Porfavor me ajude.

Em vez do convert, deveria ser media = totNum / cont, afinal totNum é que tem a soma dos valores.

Aproveitando, algumas sugestões:

  • abra o arquivo com with, pois isso garante que ele será fechado ao final (mesmo se ocorrer algum erro)
  • não precisa dessas variáveis intermediárias, pode ser apenas:
with open('mbox-short.txt') as file:
    cont = soma = 0
    for line in file:
        if not line.startswith('X-DSPAM-Confidence:'):
            continue
        soma += float(line[20:26])
        cont += 1
    media = soma / cont
    print(media)

Aliás, se for somente para imprimir a média, e não for usar para mais nada, no final poderia ser apenas print(soma / cont).