Guest User

Extraer_datos

a guest
Feb 28th, 2011
250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.62 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3.  
  4. import subprocess
  5. from datetime import datetime
  6. import sqlite3
  7.  
  8.  
  9.  
  10.  
  11. conn= sqlite3.connect('/home/jesus/Bolsa/servidor/db.sqlite3')
  12. cursor= conn.cursor()
  13.  
  14. cursor.execute("select identidicador from cotizaciones_valores group by identidicador order by identidicador")
  15. resultado= cursor.fetchall()
  16.  
  17. for ids in resultado:
  18.     id= ids[ 0]
  19.     print id
  20.    
  21.     cursor.execute( "select id, Nombre from cotizaciones_valores where identidicador = ?", (id, ))
  22.     resultado= cursor.fetchone()
  23.  
  24.     id_Valor= resultado[ 0]
  25.     Nombre_Valor= resultado[ 1].encode('utf-8')
  26.    
  27.     print Nombre_Valor
  28.     Fecha_Inicio="2011-02-25"
  29.     Fecha_Fin="2011-02-26"
  30.  
  31.     hoy= datetime.now()
  32.  
  33.     #cursor.execute("select strftime('%s', fecha), apertura, oferta, minimo, anterior, volumen from cotizaciones_charco where id_Valor_id= 27 order by fecha asc")
  34.     f1= ("'%s 00.00:00'" % Fecha_Inicio)
  35.     f2= ("'%s 23:59:59'" % Fecha_Fin)
  36.     dias= []
  37.  
  38.     cursor.execute("select strftime('%Y-%m-%d', fecha), apertura, oferta, minimo, anterior, volumen \
  39.                    from cotizaciones_charco \
  40.                    where (id_Valor_id= ? and fecha > ? and fecha< ?) \
  41.                    order by fecha asc", (id_Valor, Fecha_Inicio, Fecha_Fin))
  42.  
  43.     resultado= cursor.fetchall()
  44.  
  45.     for registro in resultado: #Busco la ultima cotizacion
  46.         fecha= registro[ 0]
  47.         if not fecha in dias:
  48.             dias.append( fecha)
  49.  
  50.     archivo_datos= open('datos.csv', 'w')
  51.  
  52.     for dia in dias:
  53.  
  54.         f1= ("'%s 00:00:00'" % dia)
  55.         f2= ("'%s 23:59:59'" % dia)
  56.        
  57.         fmt_fecha= "strftime('%Y-%m-%d', fecha)"
  58.         consulta= ("select %s, apertura, oferta, minimo, anterior, volumen \
  59.                from cotizaciones_charco \
  60.                where (id_Valor_id= %s and fecha >= %s and fecha< %s) \
  61.                order by fecha desc limit 1" % ( fmt_fecha, id_Valor, f1, f2, ))
  62.            
  63.         cursor.execute( consulta)
  64.         resultado_dias= cursor.fetchone()
  65.         exporta_datos= "%s %s\n" % ( resultado_dias[ 0],resultado_dias[ 1],)
  66.         #exporta_datos= "%s, %s, %s, %s, %s, %s" % ( resultado_dias[ 0],resultado_dias[ 1],resultado_dias[ 2],resultado_dias[ 3],resultado_dias[ 4],resultado_dias[ 5],)
  67.         archivo_datos.write( exporta_datos)
  68.  
  69.     archivo_datos.close()
  70.  
  71.     archivo_configuracion= open( 'gnuplot.dem', 'w')
  72.  
  73.  
  74.     archivo_configuracion.write("reset\n")
  75.     archivo_configuracion.write("set terminal png size 1920, 1080\n")
  76.     archivo_configuracion.write("set output './%s_a_1_anno.png'\n" % ( id,))
  77.     archivo_configuracion.write("set xdata time\n")
  78.     archivo_configuracion.write("set timefmt '%Y-%m-%d'\n")
  79.     archivo_configuracion.write("set xrange ['%s' : '%s']\n" % ( Fecha_Inicio, Fecha_Fin,))
  80.     archivo_configuracion.write("set format x '%d-%m-%y'\n")
  81.     archivo_configuracion.write("set lmargin 10\n")
  82.     archivo_configuracion.write("set rmargin 10\n")
  83.     archivo_configuracion.write("set autoscale y\n")
  84.     archivo_configuracion.write("set xlabel 'Tiempo, desde %s a %s'\n" % ( Fecha_Inicio, Fecha_Fin,))
  85.     archivo_configuracion.write("set ylabel 'Euros'\n")
  86.     archivo_configuracion.write( u"set title '%s (%s)'\n" % ( Nombre_Valor.encode('iso-8859-15'), id,))
  87.     archivo_configuracion.write("set xtics rotate 180 '%s', 604800, '%s'\n" % ( Fecha_Inicio, Fecha_Fin,))
  88.     archivo_configuracion.write("set grid\n")
  89.     archivo_configuracion.write("set grid ytics\n")
  90.     archivo_configuracion.write("plot './datos.csv' using 1:2 with lines notitle\n")
  91.  
  92.     archivo_configuracion.close()
  93.     print "Llamando a subproceso GnuPlot"
  94.     a= subprocess.call([ "gnuplot", "./gnuplot.dem"])    
  95.  
  96.     cursor.close()
Advertisement
Add Comment
Please, Sign In to add comment