У меня есть папка с именем notes, естественно, они будут разбиты на категории по папкам, и в этих папках также будут подпапки для подкатегорий. Теперь моя проблема в том, что у меня есть функция, проходящая через 3 уровня подкаталогов:
def obtainFiles(path):
list_of_files = {}
for element in os.listdir(path):
# if the element is an html file then..
if element[-5:] == ".html":
list_of_files[element] = path + "/" + element
else: # element is a folder therefore a category
category = os.path.join(path, element)
# go through the category dir
for element_2 in os.listdir(category):
dir_level_2 = os.path.join(path,element + "/" + element_2)
if element_2[-5:] == ".html":
print "- found file: " + element_2
# add the file to the list of files
list_of_files[element_2] = dir_level_2
elif os.path.isdir(element_2):
subcategory = dir_level_2
# go through the subcategory dir
for element_3 in os.listdir(subcategory):
subcategory_path = subcategory + "/" + element_3
if subcategory_path[-5:] == ".html":
print "- found file: " + element_3
list_of_files[element_3] = subcategory_path
else:
for element_4 in os.listdir(subcategory_path):
print "- found file:" + element_4
Обратите внимание, что это все еще очень большая работа. Это очень уродливо в моих глазах... То, что я пытаюсь достичь здесь, - это пройти все папки и подпапки вниз и поместить все имена файлов в словарь под названием "list_of_files", имя "ключ" и полный путь как "значение". Функция пока не совсем работает, но было интересно, как использовать функцию os.walk для выполнения подобной вещи?
Спасибо