Criando uma tabela de classificação para jogos offline no Python

Para um projeto da escola, estou criando um jogo que possui um sistema de pontuação e gostaria de criar algum tipo de tabela de classificação. Uma vez terminados, os professores farão o upload para um servidor compartilhado, onde outros alunos podem baixar uma cópia do jogo, mas infelizmente os alunos não podem salvar nesse servidor; se pudéssemos, as tabelas de classificação seriam um pedaço de bolo. Haveria no máximo algumas centenas de partituras para acompanhar, e todos os computadores têm acesso à Internet.

Não sei muito sobre servidores ou hospedagem, e não conheço java, html ou qualquer outro idioma comumente usado no desenvolvimento web, portanto outras questões relacionadas não ajudam. Meu jogo imprime as informações de pontuação em um arquivo de texto e, a partir daí, não sei como obtê-las em algum lugar on-line que todos possam acessar.

Existe uma maneira de realizar essa tarefa com apenas python?

Aqui eu tenho o código para atualizar um arquivo de cabeçalho (assumindo que seria apenas um arquivo de texto) depois de obter as pontuações. Isso presumiria que eu tinha uma cópia da tabela de classificação e o arquivo de pontuação no mesmo local.

Este é o formato do meu cabeçalho de simulação (Leaderboards.txt):

Leaderboards

1) JOE  10001
2) ANA  10000
3) JAK  8400
4) AAA  4000
5) ABC  3999

Isto é o que o arquivo de log imprimiria - as iniciais e a pontuação (log.txt):

ABC
3999

Código (funciona para python 2.7 e 3.3):

def extract_log_info(log_file = "log.txt"):
    with open(log_file, 'r') as log_info:
        new_name, new_score = [i.strip('\n') for i in log_info.readlines()[:2]]

    new_score = int(new_score)
    return new_name, new_score

def update_leaderboards(new_name, new_score, lb_file = "Leaderboards.txt"):
    cur_index = None
    with open(lb_file, 'r') as lb_info:
        lb_lines = lb_info.readlines()
        lb_lines_cp = list(lb_lines) # Make a copy for iterating over
        for line in lb_lines_cp:
            if 'Leaderboards' in line or line == '\n':
                continue

            # Now we're at the numbers
            position, name, score = [ i for i in line.split() ]

            if new_score > int(score):
                cur_index = lb_lines.index(line)
                cur_place = int(position.strip(')'))
                break

        # If you have reached the bottom of the leaderboard, and there
        # are no scores lower than yours
        if cur_index is None:
            # last_place essentially gets the number of entries thus far
            last_place = int(lb_lines[-1].split()[0].strip(')'))
            entry = "{}) {}\t{}\n".format((last_place+1), new_name, new_score)
            lb_lines.append(entry)
        else: # You've found a score you've beaten
            entry = "{}) {}\t{}\n".format(cur_place, new_name, new_score)
            lb_lines.insert(cur_index, entry)

            lb_lines_cp = list(lb_lines) # Make a copy for iterating over
            for line in lb_lines_cp[cur_index+1:]:
                position, entry_info = line.split(')', 1)
                new_entry_info = str(int(position)+1) + ')' + entry_info
                lb_lines[lb_lines.index(line)] = new_entry_info

    with open(lb_file, 'w') as lb_file_o:
        lb_file_o.writelines(lb_lines)


if __name__ == '__main__':
    name, score = extract_log_info()
    update_leaderboards(name, score)

Mais algumas informações:

A pontuação seria inferior a 1 000 000Idealmente, a solução seria apenas um código externo ao jogo, para que eu apenas tornasse um executável que o usuário executaria depois que terminasseEu sei que não parece muito seguro - e não é - mas tudo bem, não precisa ser à prova de hackers

questionAnswers(1)

yourAnswerToTheQuestion