Foros del Web » Programando para Internet » Python »

Manejo de fechas

Estas en el tema de Manejo de fechas en el foro de Python en Foros del Web. Hola Tengo una duda, cuando uno obtine por ejemplo la fecha de hoy, es posible obtener el dia, mes y ano como objetos aparte? Les ...
  #1 (permalink)  
Antiguo 09/10/2010, 21:19
 
Fecha de Ingreso: octubre-2010
Mensajes: 20
Antigüedad: 13 años, 6 meses
Puntos: 0
Manejo de fechas

Hola
Tengo una duda, cuando uno obtine por ejemplo la fecha de hoy, es posible obtener el dia, mes y ano como objetos aparte?

Les agradeceria mucho
  #2 (permalink)  
Antiguo 09/10/2010, 21:26
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Manejo de fechas

Si todo es cuestión de leer un poco sobre el modulo datetime datetime.

Solo obtener día, mes, año si no que ademas hacer operaciones con fechas.

Agrego datetime para python 3.1
  #3 (permalink)  
Antiguo 09/10/2010, 21:34
 
Fecha de Ingreso: octubre-2010
Mensajes: 20
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Manejo de fechas

Si, de hecho ya lei y logro obtener los datos aparte, pero no si te acuerdas hace un rato estaba sacando information de internet, y para eso necesito meter el dia, el mes y el año por aparte en un url pero no me funciona


url = 'http://ichart.finance.yahoo.com/table.csv?s=GOOG&g=d&a=8&b=20&c=2010&d=8&e=29&f=20 10'

no se que pasa

te agradezco si me puedes dar una idea
  #4 (permalink)  
Antiguo 09/10/2010, 21:56
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Manejo de fechas

Código Python:
Ver original
  1. url = 'http://ichart.finance.yahoo.com/table.csv?s=GOOG&g=d&a=8&b=20&c=2010&d=8&e=29&f=2010'

El rango de fechas es: 20/Sep/2010 a 29/Sep/2010

a es el mes origen
b dia origen
c año origen

d mes destino
e dia destino
f año destino

mes es un numero entre (0 Enero y 11 Diciembre)
tal vez tu problema es el espacio que hay f=20 10

Última edición por razpeitia; 09/10/2010 a las 22:11
  #5 (permalink)  
Antiguo 09/10/2010, 22:16
 
Fecha de Ingreso: octubre-2010
Mensajes: 20
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Manejo de fechas

no, pero a mi no se me genera ningun espacio

mira lo que llevo de mi funcion es lo siguiente:

def lireHistoriqueAction(symbol, deltaday):
import datetime
hoy = datetime.date.today()
mois = hoy.strftime('%m')
jour = hoy.strftime('%d')
annee = hoy.strftime('%Y')
delta = hoy - datetime.timedelta(days = deltaday)
mois1 = delta.strftime('%m')
jour1 = delta.strftime('%d')
annee1 = delta.strftime('%Y')
import urllib.request
request = urllib.request
url = 'http://ichart.finance.yahoo.com/table.csv?s=%s&g='%symbol
url = url + 'd&a=%s&b=%s&c=%s&d=%s&e=%s&f=%s'%(mois1,jour1,ann ee1,mois,jour,annee)
print (url)
fichier = request.urlopen(url)
data = fichier.read()
lines = data.split()
for line in lines:
datos = line.decode().split(',')
print (datos)

pero cuando la pruebo me sale el siguiente error:

http://ichart.finance.yahoo.com/table.csv?s=AAPL&g=d&a=10&b=02&c=2010&d=10&e=10&f= 2010
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
x = lireHistoriqueAction('AAPL',8)
File "C:\Users\valeria\Desktop\ulaval\session 1\Programation python\tp4\tp4.py", line 67, in lireHistoriqueAction
fichier = request.urlopen(url)
File "C:\Python31\lib\urllib\request.py", line 121, in urlopen
return _opener.open(url, data, timeout)
File "C:\Python31\lib\urllib\request.py", line 355, in open
response = meth(req, response)
File "C:\Python31\lib\urllib\request.py", line 467, in http_response
'http', request, response, code, msg, hdrs)
File "C:\Python31\lib\urllib\request.py", line 393, in error
return self._call_chain(*args)
File "C:\Python31\lib\urllib\request.py", line 327, in _call_chain
result = func(*args)
File "C:\Python31\lib\urllib\request.py", line 475, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 404: Not Found


es como si no encontrara los datos en internet

  #6 (permalink)  
Antiguo 09/10/2010, 22:27
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Manejo de fechas

Con un url = 'http://ichart.finance.yahoo.com/table.csv?s=AAPL' obtienes toda la lista.

Al parecer solo tiene movimientos desde el 84 al 91
  #7 (permalink)  
Antiguo 09/10/2010, 22:33
 
Fecha de Ingreso: octubre-2010
Mensajes: 20
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Manejo de fechas

no porque si utilizo el url con el año, mes y dia ya ingresados, es decir el siguiente url

url = 'http://ichart.finance.yahoo.com/table.csv?s=AAPL&g=d&a=8&b=20&c=2010&d=8&e=29&f=20 10'

si me sale la lista, el problema, creo yo, es algo en la introduccion de las fechas

ayudame, porfa, llevo un monton de tiempo y no logro encontrar el error

Gracias
  #8 (permalink)  
Antiguo 09/10/2010, 22:38
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Manejo de fechas

Solo tiene movimientos entre 1984 y 1991, si le pones el rango entre 20/Sep/2010 y 29/Sep/2010 no hay movimientos entonces no mostrara nada (En este caso arrojara un error 404).
  #9 (permalink)  
Antiguo 09/10/2010, 22:49
 
Fecha de Ingreso: octubre-2010
Mensajes: 20
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Manejo de fechas

si tiene movimientos, tengo otra funcion que me saca los movimientos en un dia especifico, y me sale los movimientos de las acciones del viernes 8 de Octubre de 2010. ademas la sigla AAPL corresponde a la empresa Apple Inc. y hasta donde yo se todavia existe y vende muy buenos computadores hasta el dia de hoy.

No me convence tu explicacion.

  #10 (permalink)  
Antiguo 09/10/2010, 23:06
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Manejo de fechas

Despues de checarlo aquí vi que estabas omitiendo un parámetro.

la url debe ser
Código Python:
Ver original
  1. url = 'http://ichart.finance.yahoo.com/table.csv?s=AAPL&g=d&a=8&b=20&c=2010&d=8&e=29&f=2010&ignore=.csv'
Sabes me hubiera servido de mucho que me dijeras de donde habías sacado esa url por que batalle para encontrarla.
  #11 (permalink)  
Antiguo 10/10/2010, 10:51
 
Fecha de Ingreso: octubre-2010
Mensajes: 20
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Manejo de fechas

me la dieron en el enunciado del problema, tocaria preguntarle al duro que me puso el problema.

De todas formas me sigue apareciendo el mismo error. no entiendo porque.
  #12 (permalink)  
Antiguo 10/10/2010, 11:39
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Manejo de fechas

A mi me funciono esto
Código Python:
Ver original
  1. import urllib.request
  2.  
  3. url = 'http://ichart.finance.yahoo.com/table.csv?s=AAPL&g=d&a=8&b=20&c=2010&d=8&e=29&f=2010&ignore=.csv'
  4. f = urllib.request.urlopen(url)
  5. data = f.read()
  6. f.close()
  7.  
  8. print(data)
Edito: Ademas esta en python 3.1

Última edición por razpeitia; 10/10/2010 a las 22:10
  #13 (permalink)  
Antiguo 10/10/2010, 22:43
 
Fecha de Ingreso: octubre-2010
Mensajes: 20
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Manejo de fechas

Ya encontre mi problema, era en el manejo de los meses

pero ahora tengo otro problemita a ver si me puedes ayudar

cuando decodifico el resultado obtengo una tabla, pero necesito meter los datos de la primera columna como claves de un diccionario y los datos de la cuarta columna sus valores correspondientes. Tienes una idea de como se hace eso? porque ya intente pero obtengo por ejemplo 7 diccionarios, (7 es el numero de filas de la tabla)
  #14 (permalink)  
Antiguo 11/10/2010, 09:25
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Manejo de fechas

Deberías de postear el código donde tienes problemas, de otra manera no puedo ver lo que estas haciendo.
  #15 (permalink)  
Antiguo 11/10/2010, 13:27
 
Fecha de Ingreso: octubre-2010
Mensajes: 20
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Manejo de fechas

Ya logre meter los datos en un diccionario, pero ahora necesito que la funcion me de una lista de tuples ordenada por fecha, cada fecha con el valor de cierre de la accion, mira la funcion que tengo es la siguiente:

def leerHistoricoAccion(symbol, deltaday):
import urllib.request
request = urllib.request
import datetime
hoy = datetime.date.today()
mois = int(hoy.strftime('%m'))-1
jour = int(hoy.strftime('%d'))
annee = int(hoy.strftime('%Y'))
delta = hoy - datetime.timedelta(days = deltaday)
mois1 = int(delta.strftime('%m'))-1
jour1 = int(delta.strftime('%d'))
annee1 = int(delta.strftime('%Y'))
import urllib.request
request = urllib.request
url = 'http://ichart.finance.yahoo.com/table.csv?s=%s&g='%symbol
url = url + 'd&a=%s&b=%s&c=%s&d=%s&e=%s&f=%s&ignore=.csv'%(moi s1,
jour1,annee1,mois,jour,annee)
fichier = request.urlopen(url)
dic = {}
dates =[]
valeurs = []
for datos in fichier:
datos = datos.decode().strip(' ')
datos = datos.strip('\r\n')
datos = datos.split(',')
dates.append(datos[0])
valeurs.append(datos[4])
dic[datos[0]] = datos[4]
liste = list(dic.items())
liste.remove(('Date','Close'))
return liste

symbol es la sigla 'AAPL'

pero ni idea como puedo ordenar esa lista de tuples.

Gracias por tu ayuda
  #16 (permalink)  
Antiguo 11/10/2010, 22:22
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Manejo de fechas

Esta si es una FAQ

Solo tienes que hacer esto:
Código Python:
Ver original
  1. from urllib import request
  2. import datetime
  3.  
  4. def leerHistoricoAccion(symbol, deltaday):
  5.     hoy = datetime.date.today()
  6.     mois = hoy.month - 1
  7.     jour = hoy.day
  8.     annee = hoy.year
  9.    
  10.     delta = hoy - datetime.timedelta(days = deltaday)
  11.    
  12.     mois1 = delta.month - 1
  13.     jour1 = delta.day
  14.     annee1 = delta.year
  15.    
  16.     url = 'http://ichart.finance.yahoo.com/table.csv?s=%s&g=' % symbol
  17.     url = url + 'd&a=%s&b=%s&c=%s&d=%s&e=%s&f=%s&ignore=.csv'% (mois1, jour1,annee1,mois,jour,annee)
  18.     fichier = request.urlopen(url)
  19.     dic = {}
  20.     dates =[]
  21.     valeurs = []
  22.     for datos in fichier:
  23.         datos = datos.decode().strip(' ')
  24.         datos = datos.strip('\r\n')
  25.         datos = datos.split(',')
  26.         dates.append(datos[0])
  27.         valeurs.append(datos[4])
  28.         dic[datos[0]] = datos[4]
  29.     liste = list(dic.items())
  30.     liste.remove(('Date','Close'))
  31.     return liste
  32.  
  33. liste = leerHistoricoAccion('AAPL', 10)
  34. #liste.sort(key=lambda x: x[0]) #Orden ascendente
  35. liste.sort(key=lambda x: x[0], reverse=True)
  36. print('\n'.join("%s, %s" % (date, value) for date, value in liste))

Etiquetas: fechas, manejo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:56.