我有一個編譯少量程序並將輸出放到一個文件夾中的腳本,我在腳本中有一個函數用於迭代並找到文件夾中的所有可執行文件並將它們添加到列表,在mac中找到特定類型的文件(python)
def _oswalkthrough(direc,filelist=[]):
dirList=os.listdir(direc)
for item in dirList:
filepath = direc+os.sep+item
if os.path.isdir(filepath):
filelist = _oswalkthrough(filepath,filelist)
else:
if ".exe" == item[-4:]:
filelist.append(filepath)
return filelist
這適用於任何問題的窗口,但是當我在Mac上運行此,我無法得到它的工作,當然在Mac編譯後的文件不是結束「 .exe「,這樣如果語句無用,所以我做了一個包含編譯文件名稱的列表,並將腳本更改爲以下內容,但仍然沒有結果,它添加了所有文件,包括」.o「文件,我不想要!我只想要exe文件? (我不知道他們在mac中稱爲什麼!)。
def _oswalkthrough(direc,filelist=[]):
dirList=os.listdir(direc)
for item in dirList:
filepath = direc+os.sep+item
if os.path.isdir(filepath):
filelist = _oswalkthrough(filepath,filelist)
else:
for file in def_scons_exe:
if file == item[-4:]:
filelist.append(filepath)
return filelist
你應該看看了'os.walk'。你可以建立這個列表,而不用'_oswalkthrough'遞歸。 – mgilson 2012-08-16 12:56:48