我需要os.walk從我的父路徑(tutu),所有子文件夾。對於每一個,每個最深的子文件夾都有我需要用我的代碼處理的文件。對於具有文件的所有最深的文件夾,文件'佈局'是相同的:一個文件* .adf.txt,一個文件* .idf.txt,一個文件* .sdrf.txt和一個或多個文件* .dat。如圖所示。 我的問題是,我不知道如何使用os模塊從我的父文件夾到所有子文件夾的順序迭代。我需要一個函數,對於os.walk中的當前子文件夾,如果該子文件夾爲空,則繼續該子文件夾內的子子文件夾(如果存在)。如果存在,那麼驗證該文件佈局是否存在(這是沒有問題的......),如果是,則應用代碼(沒問題)。如果沒有,並且如果該文件夾沒有更多的子文件夾,則返回到父文件夾並將os.walk移動到下一個子文件夾,並且將所有子文件夾移動到我的父文件夾(tutu)中。要恢復,我需要像下面(Python編寫/虛代碼混合動力)的一些功能:需要'如果os.havefiles'像python中的子文件夾搜索功能
for all folders in tutu:
if os.havefiles in os.walk(current_path):#the 'havefiles' don´t exist, i think...
for filename in os.walk(current_path):
if 'adf' in filename:
etc...
#my code
elif:
while true:
go deep
else:
os.chdir(parent_folder)
你認爲最好的定義在我的代碼來調用來完成這項工作?
這是我試圖使用的代碼,而無需sucess,當然:
import csv
import os
import fnmatch
abs_path=os.path.abspath('.')
for dirname, subdirs, filenames in os.walk('.'):
# print path to all subdirectories first.
for subdirname in subdirs:
print os.path.join(dirname, subdirname), 'os.path.join(dirname, subdirname)'
current_path= os.path.join(dirname, subdirname)
os.chdir(current_path)
for filename in os.walk(current_path):
print filename, 'f in os.walk'
if os.path.isdir(filename)==True:
break
elif os.path.isfile(filename)==True:
print filename, 'file'
#code here
在此先感謝...
這沒什麼意義。如果子文件夾爲空,那麼如何遞歸到其子文件夾中? – abarnert
是的。你的更正是真實的。我的意思是'如果文件夾只有文件夾。謝謝 – BioInfoPT