Я использую функцию, которая возвращает список всех файлов (полный путь для каждого из них) с заданным расширением в данной папке и во всех подпапках. Поскольку процесс довольно долгий и пользователь может почувствовать, что приложение зависает, каждые 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
Создает список всех файлов. Затем в зависимости от настроек задачи этот список фильтруется по определенным параметрам (т.е. по коду языка в определенной части имени пути). Затем есть много вариантов того, что можно сделать с файлами. Скопируйте в какую-то структуру, сравнивая те же файлы в следующих папках и т. Д.