我正在尝试使用Python控制我的RPi上的GPIO但没有一个需要使用root权限的模块。 我发现通过控制台只是“回显”1或0到GPIO的值文件的简单方法。我还写了一个自动执行此操作的Python脚本。到现在为止还挺好。 但这仅适用于文件(在本例中为:/ sys / class / gpio / gpio17)已存在的情况。 我可以在启动Pi后通过控制台轻松创建此文件夹,如下所示:
pi@raspberrypi ~ $ cd /sys/class/gpio
pi@raspberrypi /sys/class/gpio $ echo "17" > export
在此之后我将拥有文件夹/ sys / class / gpio / gpio17,在其中我找到有关该引脚的信息并可以对其进行修改。
基本上我的问题是:如何将此步骤合并到我的Python脚本中。有没有办法移动到目录并使用Python导出此文件夹? 我想出了一个单独的Bash脚本,然后我在我的Python脚本中运行,但我想避免使用几种语言,并且想知道是否有相当于Python中的“echo”命令。 我现在搜索了几天但找不到任何东西。 如果有的话,链接也会受到高度赞赏!
提前谢谢你,
新手
答案 0 :(得分:3)
根据您的描述,您只需要将所需的数字写入名为/sys/class/gpio/export
的文件。
GPIO_EXPORT = '/sys/class/gpio/export'
PIN = 17
with open(GPIO_EXPORT, 'w') as export:
export.write(str(PIN))
答案 1 :(得分:0)
有很多选择。您可以使用os
模块(或更灵活的 - subprocess
模块)在您的python代码中直接使用bash语法。
在你的工作目录中启动python解释器,
>>> import os
>>> os.system("echo 18>import")
0
>>> exit()
$ ls -a
. .. import
$ cat import
18
或写文件。
>>> with open("newport", "w") as newport:
... newport.write("19")
...
>>> exit()
$ ls -a
. .. import newport
$ cat newport
19
等等。请查看original documentation