2015-09-20 2 views
0

Я озадачен, почему следующий скрипт (count.py) не будет работать с помощью ИК-пульта дистанционногоLIRC - Python счетчик скрипт не будет работать

#!/usr/bin/env python 
from __future__ import with_statement 
with open('num.txt','r+') as f: 
    counter = str(int(f.read())+1) 
    f.seek(0) 
    f.write(counter) 

У меня есть другие сценарии, которые работают нормально т.е. это тот, когда сопоставляются с одной кнопки выполняется без проблем

#!/usr/bin/env python 
import RPi.GPIO as GPIO ## Import GPIO library 
GPIO.setmode(GPIO.BCM) ## Use board pin numbering 
GPIO.setup(22, GPIO.OUT) ## Setup GPIO Pin 7 to OUT 
GPIO.output(22,True) ## Turn on GPIO pin 7 
GPIO.cleanup() 

сценария проблемы будет работать из командной строки с помощью «SUDO питона count.py» и если я начну irexec из командной строки с Суда то она также будет работать с помощью пульта ДУ , По сути, запуск irexec таким образом является работоспособным решением. Тем не менее я все еще стараюсь установить, почему в нынешних условиях сценарий не будет работать.

+0

отступом, как показано, является неправильным, его нужно отступом под оператором 'with'. –

+0

Вы проверяете права доступа к файлам 'num.txt', чтобы гарантировать, что он доступен для чтения и записи пользователем, который выполняет скрипт без sudo? –

+0

@Joe - У этого есть полные привилегии. Я запустил 'sudo Chmod 777' на всю папку, содержащую его. –

ответ

0

Возможно, сценарий проблем не может открыть «num.txt»: либо он работает как пользователь, который не имеет разрешения, либо работает из каталога, которого вы не ожидаете, и поэтому не может видеть относительный путь к num.txt. В этом случае скрипт завершится с ошибкой, но это может быть где-то потеряно.

Попробуйте проверить журналы, чтобы узнать, есть ли какие-либо ошибки.

Вы также можете изменить сценарий, чтобы использовать абсолютный путь к num.txt, и исключение уловов и записать их в журнал где-то (тоже абсолютный путем, и все пишут разрешение - возможно, в/TMP)

+0

Я поместил путь абзаца в num.txt в скрипте, и теперь он работает. Большое спасибо! –

Смежные вопросы