Python Строка не может быть преобразована в целое число - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь прочитать значение датчика из последовательного порта Arduino, используя следующий скрипт Python:

import serial
ser = serial.Serial("COM5", baudrate=9600, timeout=1)
def get_val():
    ser.write(b'g')
    return ser.readline().decode().rstrip()

while 1:
    data = get_val()
    print(data)

Пока все работает очень хорошо, python печатает значения датчика на Консоль в виде строк. Но когда я пытаюсь привести String 'data' к целому числу, я получаю следующее сообщение об ошибке:

Traceback (most recent call last):
  File "[...] requestDataPoint.py", line 18, in <module>
    print(int(data))
ValueError: invalid literal for int() with base 10: ''

Что здесь не так?

1 Ответ

0 голосов
/ 26 февраля 2020

Здесь я могу предложить некоторые способы устранения неполадок:

Сначала проверьте длину строки первого вывода и, если она соответствует целочисленному значению, затем остановите итерацию и проверьте только 1 значение и проверьте num.isdigit() и если он не совпадает с длиной, то между числами есть пробел, затем вы должны удалить пробел между числами.

...