2016-01-08 168 views
0

我的代碼在執行失敗:for dirName ... os.walk()。 我只想檢索源文件夾中的文件列表。我之前使用過這個命令(在Win上工作正常),但我試圖讓我的樹莓派(Linux)上運行相同的代碼,現在它不工作......?os.walk覆盆子pi上的故障

import os 
import os.path 
src = '/home/data/' 
ext = '.hpl' 
fns=[] 
print src 
print ext 
print 'Starting' 
for dirName, subdirList, fileList in os.walk(src, topdown=True): 
    print('Found directory: %s' % dirName) 
    for fname in fileList: 
     print('\t%s' % fname) 
     if fname.lower().endswith(ext): 
      fn = os.path.join(dirName,fname) 
      fns.append(fn) 
print 'Ending the code' 
return fns 

當我運行此,輸出是: 打印源(/家/數據/) 打印EXT(.hpl) 打印 '正在啓動' 打印 '結束碼'

無不管我嘗試什麼,它跳過整個「for dirName ... os.walk ...」段。不知道我的聲明有什麼問題嗎?注意:實際上,它會將src打印爲/ home/data/{音符},其中音符= /旁邊的小音符節拍符號。我從來沒有見過這個...

+0

可能是卡在字符串中但未顯示的不可打印符號。嘗試重寫'src'的內容 – njzk2

+0

你在'/ home/data /'中有什麼內容?我們可以有一個表示樹或類似的東西嗎?它有文件夾和非字母數字字符的文件? –

+1

Plus..is this Python2 or Python3?..我看你有太多版本的'print'? –

回答

1

這是一個不可打印的符號(不知道它是如何到達那裏?)在src結束,導致它崩潰。無論如何,修復一次我重寫了src = .../。儘管我不知道不可打印的符號來自哪裏。

+1

@Rogalski:沒有。 –

+0

我會給你一個upvote只是爲了回來,讓我們知道發生了什麼。我仍然希望你能使用我給出的建議來弄清楚確切的字符,因爲我無法弄清楚哪些符號不會在源代碼中顯示出來,而是會在運行時打印爲音符。 –