Salvando e recuperando valores de variáveis ​​entre execuções

Eu tenho um módulo Python que está operando como um servidor para um computador portátil sem fio. Toda vez que o portátil envia uma mensagem ao servidor, o módulo determina que tipo de mensagem é e, em seguida, monta uma resposta apropriada. Como as respostas geralmente dependem do estado, estou usando variáveis ​​globais quando necessário para reter / compartilhar informações entre as funções individuais que lidam com cada tipo de mensagem.

O problema que estou tendo é quando o aplicativo é fechado (por qualquer motivo), os valores das variáveis ​​globais são (obviamente) perdidos, portanto, ao relançar o aplicativo, ele não está sincronizado com o handheld. Eu preciso de uma maneira confiável para armazenar esses valores para recuperação.

A direção que eu tenho feito até agora (mas ainda não consegui que funcione) é escrever os nomes das variáveis ​​e seus valores em um arquivo CSV no disco, toda vez que eles são atualizados - e então (quando o aplicativo é lançado), procure esse arquivo e use-o para atribuir as variáveis ​​aos seus estados anteriores. Não tenho problemas para gravar ou ler o arquivo, mas, por algum motivo, os valores não estão sendo atribuídos.

Eu posso postar o código para comentários / ajuda, mas antes disso eu queria descobrir se eu estava indo em uma direção completamente errada em primeiro lugar. Existe uma maneira melhor (ou pelo menos preferível) de salvar e recuperar esses valores?

obrigado, JDM

====

Seguindo. Pode ser um pouco klunky, mas aqui está o que eu tenho e está funcionando. Os únicos globais que me interessam são os que começam com "CUR_". Eu tive que usartempDict1 porque o intérprete não parece gostar de iterar diretamente sobreglobals().

    import pickle
    CUR_GLO1 = 'valglo1'
    CUR_GLO2 = 'valglo2'
    CUR_GLO3 = 'valglo3'

    def saveGlobs():
        tempDict1 = globals().copy()
        tempDict2 = {}
        for key in tempDict1:
            if (key[:4]=='CUR_'):tempDict2[key] = tempDict1[key]
        pickle.dump(tempDict2,open('tempDict.p','wb'))

    def retrieveGlobs():
        tempDict = pickle.load(open('tempDict.p','rb'))
        globals().update(tempDict)

questionAnswers(1)

yourAnswerToTheQuestion