Ошибка IndexError: сообщение об ошибке list index out of range только при использовании SSH

#python #arrays #arraylist #ssh #raspberry-pi

#python #массивы #arraylist #ssh #raspberry-pi

Вопрос:

Мой Raspberry PI подключен к датчику ds18b20, и у меня есть скрипт на Python, который запускает датчик, записывает температуру в помещении и сохраняет его в текстовый файл каждые 2 минуты:

 21.000
21.125
21.125
21.062
21.125
21.062
21.187
 

У меня есть другой скрипт Python, который считывает последнюю температуру temp.txt и отправляет значение в MYSQL:

 // selected_node.py
# Read current temp from txt file
with open('temp.txt', 'r') as f:
  lines = f.read().splitlines()
  last_line = lines[-1]
print last_line

...
 

Когда я запускаю скрипт Python, все работает:

 21.187
(1, 'record inserted.')
 

Однако, почему, когда я пытаюсь запустить тот же скрипт с другого Raspberry PI ssh -p 22 -i pi.rsa pi@192.168.1.xx python /home/pi/selected_node.py , я получаю следующее сообщение об ошибке:

 File "/home/pi/selected_node.py", line 15, in <module>
last_line = lines[-1]
IndexError: list index out of range
 

Комментарии:

1. Это означает, что ваш lines массив пуст, поэтому вы не можете получить из него индекс, вам нужно проверить temp.txt , действительно ли читаемый вами файл создан и содержит в нем некоторые данные

2. Мне просто любопытно, вы запускаете скрипт из /home/pi/selected_node.py но в ошибке указан путь к файлу как /home/pi/FYP/selected_node.py . Вы уверены, что у вас есть temp.txt обновлено в правильной папке?

3. @DeveshKumarSingh мой `temp.txt » в файле есть данные, я могу их запустить «.selected_node.py ‘скрипт с raspberry pi, на котором он включен, я получаю сообщение об ошибке только тогда, когда я использую ssh с другого PI и выполняю тот же скрипт со второго PI

4. @SainathMotlakunta извините, забыл обновить эту строку, но да, путь к файлу указан правильно

5. Попробуйте использовать кавычки в удаленной команде что-то вроде этого ssh -p 22 -i pi.rsa pi@192.168.1.xx ‘питон /home/pi/selected_node.py ‘