У меня есть script, который считывает данные о температуре:
def get_temp(socket, channels):
data = {}
for ch in channels:
socket.sendall('KRDG? %s\n' % ch)
time.sleep(0.2)
temp = socket.recv(32).rstrip('\r\n')
data[ch] = float(temp)
Иногда script терпит неудачу в строке, которая преобразует значения в float:
Файл "./projector.py", строка 129, в get_temp
данные [ch] = float (temp)
ValueError: неверный литерал для float(): + 135.057E + 0
+ 078.260E + 0
+00029
но это НЕ является недопустимым литералом. Если я введу это в любую оболочку python,
float(+135.057E+0)
то он корректно возвращает 135.057.
Итак, в чем проблема?