Anteriorment el codi feia:
- Baixar-se l'stream en gzip.
- Guardar-lo a un fitxer .gz al sistema de fitxers.
- Obrir el fitxer .gz guardat per descomprimir-lo.
- Guardar el fitxer descomprimint al sistema de fitxers.
- Obrir el fitxer descomprimit per llegir-lo
- Guardar-lo a la base de dades
Buscant a la documentació del mòdul gzip de python només trobava que el paràmetre que se li podia passar era la ruta d'un fitxer i aquest després l'obria i duia a terme totes les operacions. Finalment buscant pel sant google, he trobat una resposta a la magnífica pàgina de stackoverflow.
Actualment el codi fa:
- Baixar-se l'stream en gzip.
- Descomprimir l'stream gzip en memòria i posant-lo a un altre stream
- Obrir l'stream descomprimit.
- Guardar-lo a la base de dades
m = StringIO.StringIO(gzip.GzipFile(fileobj=c).read())
c.close()
# Importem el fitxer
import csv
reader = csv.reader(m, delimiter=';')
Des de que vaig descobrir StringIO sóc un home nou... jajaja
ResponEliminaVa de perles :)