Otimizando a localização e substituição de arquivos grandes em Python

eu sou uminiciante completo para Python ou qualquer linguagem de programação séria para esse assunto. Finalmente consegui um código protótipo para funcionar, mas acho que será muito lento.

Meu objetivo é encontrar e substituir alguns caracteres chineses em todos os arquivos (eles são csv) em um diretório com números inteiros, conforme o arquivo csv que eu tenho. Os arquivos são bem numerados por ano-mês, por exemplo 2000-01.csv, e serão os únicos arquivos nesse diretório.

Estarei circulando em torno de 25 arquivos que estão na vizinhança de 500mb cada (e cerca de um milhão de linhas). O dicionário que utilizarei terá cerca de 300 elementos e mudarei o unicode (caractere chinês) para números inteiros. Eu tentei com uma execução de teste e, assumindo que tudo aumenta linearmente (?), Parece que levaria cerca de uma semana para que isso fosse executado.

Desde já, obrigado. Aqui está o meu código (não ria!):

# -*- coding: utf-8 -*-

import os, codecs

dir = "C:/Users/Roy/Desktop/test/"

Dict = {'hello' : 'good', 'world' : 'bad'}

for dirs, subdirs, files in os.walk(dir):
    for file in files:
        inFile = codecs.open(dir + file, "r", "utf-8")
        inFileStr = inFile.read()
        inFile.close()
        inFile = codecs.open(dir + file, "w", "utf-8")
        for key in Dict:
            inFileStr = inFileStr.replace(key, Dict[key])
        inFile.write(inFileStr)
        inFile.close()

questionAnswers(4)

yourAnswerToTheQuestion