Найденные файлы копируются в одну папку и заменяются сами собой
В предыдущем вопросе у меня все получилось сделать, но столкнулся с одной проблемой. Мне нужно, чтобы все файлы которые мой скрипт нашел - копировались в одну папку, но названия всех нужных мне 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