Python相当于Bash命令“echo”?

时间:2015-05-06 12:47:52

标签: python bash

我正在尝试使用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”命令。 我现在搜索了几天但找不到任何东西。 如果有的话,链接也会受到高度赞赏!

提前谢谢你,

新手

2 个答案:

答案 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

相关问题