繁体   English   中英

Python相当于Bash comand“ echo”吗?

[英]Python equivalent to Bash comand “echo”?

我试图用Python控制我的RPi上的GPIO,但没有那些需要使用根权限的模块之一。 我发现通过控制台将“ 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”命令的命令。 我搜索了几天,但找不到任何东西。 如果有的话,一个链接将不胜感激!

先感谢您,

一个新手

根据您的描述,您只需要将所需的编号写入名为/sys/class/gpio/export

GPIO_EXPORT = '/sys/class/gpio/export'
PIN = 17
with open(GPIO_EXPORT, 'w') as export:
    export.write(str(PIN))

有很多选择。 您可以通过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

等等。 查阅原始文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM