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')

