Código simples, mas que pode ser útil para alguém não ter que escrevê-lo de novo (arquivo runcached.py):
import os,time cachepath='cache' timeout=360 def runcached(cmd): filename=os.path.join(cachepath,str(hash(cmd))) if os.path.isfile(filename): if time.time()-os.path.getmtime(filename)<timeout: return open(filename).read() t=os.popen(cmd).read() open(filename,'w').write(t) return t
A função runcached roda comandos do sistema operacional, e faz cache do resultado por 6 minutos. Para alterar o tempo do cache, basta mudar a variável timeout. Por exemplo, para cachear por 10 horas:
import runcached runcached.timeout=36000 r=runcached('lynx --source http://www.tableless.com.br')