2015-05-27 55 views
4

我的SO是Raspberry Pi中的Raspbian 2. Im正在使用nano 2.2.6 我是Python中的新手。 我想編程一個溫度傳感器D18B20。 我有一個奇妙的手冊: Raspberry Pi temperature sensor。 當我列出這些設備用:在Python中獲取目錄的完整名稱

ls -l /sys/bus/w1/devices/ 

我想獲得asociated的溫度計爲28 *目錄的名稱。我知道這個名字,但我需要製作一個程序來獲取名稱。 我正在處理這段代碼。但是我無法得到目錄的全名。

import os 
    name = os.path.basename ("sys/bus/w1/devices/28*") 
    print (name) 

非常感謝您的時間和耐心 問候

編輯的版本0.1B

import glob, os.path 
import time 

paths = glob.glob("/sys/bus/w1/devices/28-*") 
path_names= [os.path.basename(path) for path in paths] 
l = list (path_names) 
name = l[0] 
path_names = "".join(name) 
print name 

while 1: 
    tempfile = open ("/sys/bus/w1/devices/name/w1_slave") 
    #thetext = tempfile.read() 
    #tempfile.close() 
    #tempdata = thetext.split("\n"[1].split(" ")[9] 
    #temperature = float(tempdata[2:]) 
    #temperature = temperature/1000 
    #print temperature 
    #time.sleep (1) 
+2

請注意,你的命令行示例使用'/ sys/bus/w1/devices'路徑,但是你的代碼沒有使用'w1'組件。 –

+0

謝謝,我改變了,但我不能得到完整的名稱。 –

+3

作爲輸出,你期望什麼?我不明白「目錄的全名」是什麼意思。 – poke

回答

0

基於谷歌搜索你的鏈接的,好像你的溫度傳感器如下一個28- *的命名模式。你可以使用這個:

import glob, os.path 
paths = glob.glob("/sys/bus/w1/devices/28-*") 
path_names = [os.path.basename(path) for path in paths] 

if len(path_names) > 0: 
    first_sensor = os.path.normpath(os.path.join(path_names[0], "w1_slave")) 
    while True: 
     # read from sensor file 
+0

非常感謝您的幫助。我知道了。現在我需要將「28- *」的名稱作爲字符串。 –

+1

可以使用os.path.basname()函數來實現。我已經編輯了上面的答案來反映這一點。 – Sandman

+0

再次感謝您的寶貴幫助。我做了改變。他們工作,但我仍然有問題。我無法打開目錄。我在主要問題中編輯過。再次感謝您的耐心。 –

相關問題