Foros del Web » Programando para Internet » Python »

ValueError: could not convert string to float: - Solamente cuando se ejecuta en cron

Estas en el tema de ValueError: could not convert string to float: - Solamente cuando se ejecuta en cron en el foro de Python en Foros del Web. hola, tengo un programa en python que basicamente lee uns contenidos de un fichero y luego esos valores mutiplica x un número y añade el ...
  #1 (permalink)  
Antiguo 15/11/2016, 12:23
 
Fecha de Ingreso: junio-2003
Mensajes: 122
Antigüedad: 15 años, 3 meses
Puntos: 0
ValueError: could not convert string to float: - Solamente cuando se ejecuta en cron

hola,

tengo un programa en python que basicamente lee uns contenidos de un fichero y luego esos valores mutiplica x un número y añade el valor a una lineas.
El caso es que si ejecuto el script python manualmente via python mi-programa.py funciona perfectamente.
El problema viene cuando he ido a incluirlo en el cron del sistema. Lo he metido en el user root y el user de mi sesión, pero en ambos casos el script se ejecuta pero saca este error:

File "/home/takezo/scripts/mio/humidity9.py", line 21, in <module>
humout1 =float(humout1)* 1 + 0
ValueError: could not convert string to float:

Revisando el código, no soy capaz de saber qué pasa..? en manual si le meto un print del valor humout1 me da el valor numérico , osea es correcto.. pero en automaticno no tira.. ¿alguna idea..?

os paso el script

Código:
#!/usr/bin/env /usr/bin/python

import subprocess
import re
import time
from datetime import datetime
import httplib
import logging
import logging.handlers
import argparse
import sys
import time

tempout = open("/home/usuario/scripts/mio/tempOut.txt")
tempout1 = tempout.read(8)
tempout1 = float(tempout1) * 1 + 0
tempout.close()
humout = open("/home/usuario/scripts/mio/humidityOut.txt")
humout1 = humout.read(7)
humout1= float(humout1) * 1 + 0
humout.close()
pressout = open("/home/usuario/scripts/mio/pressOut.txt")
pressout1 = pressout.read(9)
pressout1 = float(pressout1) * 1 + 0
pressout.close()

# print tempout

# upload data to mi_web
try:
        conn = httplib.HTTPConnection("iwgoogle.com")
        path = "/weatherstation/updateweatherstation.php?ID=IIDEUSER&PASSWORD=passuserid&dateutc=" + str(datetime.utcnow().isoformat()) + "&humidity=" + str(humout1) + "&tempf=" + str(tempout1) + "&baromin=" + str(pressout1) + "&softwaretype=raspberry-pi&status=updateraw"
        conn.request("GET", path)
        res = conn.getresponse()
# print path

        print "status: %s" % res.status
        print "------------------------------------------"
        print "reason: %s" % res.reason
        print "------------------------------------------"
        print "headers: %s" % res.getheaders()
        print "------------------------------------------"
        print "html: %s" % res.read()

except:
    print sys.exc_info()[2]
__________________
startwav

http://e-hosting.startwave.com/img/banner.gif
Internet Nunca ha estado más cerca de Tí. e-Hosting Start Wave Media . Todo lo que necesitas para tener presencia en Internet.
Servicios de Registro Dominios / DNS / HOSTING / Y MUCHO MÁS...
  #2 (permalink)  
Antiguo 16/11/2016, 03:36
 
Fecha de Ingreso: junio-2003
Mensajes: 122
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: ValueError: could not convert string to float: - Solamente cuando se ejecu

¿alguna ayuda??
__________________
startwav

http://e-hosting.startwave.com/img/banner.gif
Internet Nunca ha estado más cerca de Tí. e-Hosting Start Wave Media . Todo lo que necesitas para tener presencia en Internet.
Servicios de Registro Dominios / DNS / HOSTING / Y MUCHO MÁS...
  #3 (permalink)  
Antiguo 16/11/2016, 22:05
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 13 años, 6 meses
Puntos: 1360
Respuesta: ValueError: could not convert string to float: - Solamente cuando se ejecu

Sin saber que valor esta tratando de convertir, es dificil saber porque falla.
Te recomiendo tener logs o algo por el estilo para saber que valores estas recibiendo.

Código Python:
Ver original
  1. def read_float(filename, size, default):
  2.     with open(filename) as f:
  3.         value = f.read(size)
  4.         try:
  5.             return float(value)
  6.         except ValueError as e:
  7.             print str(e)
  8.             print "No logre transformar '{}' en un flotante".format(value)
  9.     return default
  10.  
  11. tempout1 = read_float("/home/usuario/scripts/mio/tempOut.txt", 8, 0)
  12. humout1= read_float("/home/usuario/scripts/mio/humidityOut.txt", 7, 0)
  13. pressout1 = read_float("/home/usuario/scripts/mio/pressOut.txt", 9, 0)

Etiquetas: convert, cron, ejecuta, float, html, solamente, string
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 20:58.