Как определить, что я в последней папке данного дерева каталогов в Python? - PullRequest
0 голосов
/ 17 января 2019

Я хотел бы полностью проанализировать заданное дерево каталогов и остановиться на последней папке и проверить наличие определенных файлов (скажем, файла .nfo) только в этой последней папке.

Дерево каталогов и его подпапки могут содержать некоторые файлы, поэтому проверить, есть ли в папке файлы, как решение, мне некуда.

спасибо

1 Ответ

0 голосов
/ 17 января 2019

что я бы сделал, это: Итерация по каталогам рекурсивно. Имейте счетчик уровня глубины, на котором вы находитесь. Каждый раз, когда вы находите новый каталог, который имеет глубину> = ваш текущий счетчик. сохраните новый путь и установите счетчик (для>). Таким образом, вы должны запустить все подкаталоги один раз, и в конце вы получите путь к последней папке. Затем выполните проверку файла в этом пути.

Попробуйте это:

path = 'To:\\Be\\Set'
counter = 0

def getFile(path, counter, result):
    counterTmp = counter
    list = os.listdir(path)
    print (path)
    #print (list)
    for item in list:
        if (os.path.isdir(path +"\\"+ item)):
            if (len(os.listdir(path +"\\"+ item)) > 0):
                result, counter = getFile(path+"\\"+item, counterTmp + 1, result)
        elif (counterTmp >= counter):
            result = path
    return result, counterTmp

def checkFiles(path, setToCheck):
    list = os.listDir(path)
    result = []
    for file in list:
        if (file in setToCheck)
            result.append(file)
    return result

path, counter = getFile(path, 0, '')
println(path)
setToCheck = set(["toBeFilled"])
println(checkFiles(path, setToCheck))
...