簡體   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