Найденные файлы копируются в одну папку и заменяются сами собой

В предыдущем вопросе у меня все получилось сделать, но столкнулся с одной проблемой. Мне нужно, чтобы все файлы которые мой скрипт нашел - копировались в одну папку, но названия всех нужных мне txt - одинаковые, просто они в разных папках. И разумеется, при переносе в одну - они заменяют сами себя, что в конечном итоге оставляет мне 1 файл место 100 (образно). Есть ли вариант при переносе файлов изменять их имена? введите сюда описание изображения


Ответы (2 шт):

Автор решения: MaxU

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

→ Ссылка
Автор решения: CrazyElf

Вот вам пример:

from os import path
from collections import defaultdict

files = ['/usr/data/file1.txt', '/usr/data/file2.txt', '/usr/data/file1.txt', '/usr/data/file1.txt', '/usr/data/file2.txt', '/usr/data/file3.txt']

d = defaultdict(int)
for file in files:
    d[file] += 1
    s = path.splitext(file)
    file = f'{s[0]}_{d[file]}{s[1]}'
    print(file)

На выходе:

/usr/data/file1_1.txt
/usr/data/file2_1.txt
/usr/data/file1_2.txt
/usr/data/file1_3.txt
/usr/data/file2_2.txt
/usr/data/file3_1.txt
→ Ссылка