Скрипт Python, который получает список всех файлов с определенным расширением, начиная с текущей папки. Использование таймера для отчета о процессе

Я использую функцию, которая возвращает список всех файлов (полный путь для каждого из них) с заданным расширением в данной папке и во всех подпапках. Поскольку процесс довольно долгий и пользователь может почувствовать, что приложение зависает, каждые 5 секунд я записываю в вывод имя файла, над которым работает скрипт. Код ниже работает нормально. Но я уверен, что это не самый удобный и эффективный способ его написания. Так что я с нетерпением жду отзывов и советов. Примечание: я стараюсь импортировать как можно меньше модулей. os и времени на это, думаю, хватит.

import os
import time

def all_files_list(checkpath):
    '''Creates list of all files in subfolders of the given folder.
    Counts only .png'''
    lastTimer = time.time()
    result_list = []
    if checkpath:
        for root, dirs, files in os.walk(checkpath):
            for x in files:
                if x[-4:] == ".png":
                    if time.time() - lastTimer2 > 5:
                        lastTimer2 = time.time()
                        print('Working on ' + os.path.join(root, x))
                    result_list.append(os.path.join(root, x))
    return result_list

Создает список всех файлов. Затем в зависимости от настроек задачи этот список фильтруется по определенным параметрам (т.е. по коду языка в определенной части имени пути). Затем есть много вариантов того, что можно сделать с файлами. Скопируйте в какую-то структуру, сравнивая те же файлы в следующих папках и т. Д.

0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *