0

我很困惑为什么以下脚本(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 是一个可行的解决方案。尽管如此,我仍然热衷于确定为什么在目前的情况下脚本不会运行。

4

1 回答 1

0

可能是问题脚本无法打开“num.txt”:它以没有权限的用户身份运行,或者它从您不期望的目录运行,因此看不到num.txt 的相对路径。在这种情况下,脚本会因错误而失败,但这可能会在某处丢失。

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

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

于 2015-09-20T08:43:25.457 回答