lirc - Python 反脚本不会 运行

lirc - Python counter script will not run

我很困惑为什么以下脚本 (count.py) 不会 运行 使用红外遥控器

#!/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 python count.py' 从命令行运行,如果我使用 sudo 从命令行启动 irexec 那么它也会 运行 使用遥控器。本质上,以这种方式启动 irexec 是一个可行的解决方案。尽管如此,我仍然很想知道为什么在目前的条件下脚本不会 运行.

可能是问题脚本无法打开"num.txt":要么是运行作为没有权限的用户,要么是运行来自您不期望的目录,因此看不到 num.txt 的相对路径。在这种情况下,脚本会因错误而失败,但这可能会在某处丢失。

尝试检查日志以查看是否报告了任何错误。

您还可以更改脚本以使用 num.txt 的绝对路径,并捕获异常并将它们写入某处的日志(也是绝对路径和所有写入权限?-可能在 /tmp 中)