Crear una tabla de clasificación para un juego fuera de línea en Python

Para un proyecto escolar, estoy creando un juego que tiene un sistema de puntuación, y me gustaría crear algún tipo de tabla de clasificación. Una vez terminado, los maestros lo subirán a un servidor compartido donde otros estudiantes pueden descargar una copia del juego, pero desafortunadamente los estudiantes no pueden guardar en ese servidor; si pudiéramos, las tablas de clasificación serían pan comido. A lo sumo, habría un centenar de puntajes para realizar un seguimiento, y todas las computadoras tienen acceso a Internet.

No sé mucho sobre servidores o alojamiento, y no sé java, html o cualquier otro lenguaje comúnmente utilizado en el desarrollo web, por lo que otras preguntas relacionadas realmente no ayudan. Mi juego imprime la información de puntuación en un archivo de texto, y desde allí no sé cómo obtenerla en algún lugar en línea al que todos puedan acceder.

¿Hay alguna manera de lograr tal tarea con solo Python?

Aquí tengo el código para actualizar un archivo de clasificación (suponiendo que solo sea un archivo de texto) una vez que tenga los puntajes. Esto supondría que tenía una copia de la tabla de clasificación y el archivo de puntuación en el mismo lugar.

Este es el formato de mi simulacro de clasificación (Leaderboards.txt):

Leaderboards

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

Esto es lo que imprimiría el archivo de registro: las iniciales y la puntuación (log.txt):

ABC
3999

Código (funciona tanto para python 2.7 como para 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)

Alguna información más:

La puntuación sería inferior a 1 000 000Idealmente, la solución sería un código externo al juego, de modo que simplemente creara un archivo ejecutable que el usuario ejecutaría después de haber terminadoSé que no suena muy seguro, y no lo es, pero está bien, no es necesario que sea a prueba de piratería

Respuestas a la pregunta(1)

Su respuesta a la pregunta