Перемещайте определенные файлы по расширению в папку и переименовывайте дубликаты, если они есть

Итак, в основном у меня есть несколько файлов .txt в папках и подпапках, которые я хочу переместить в новую папку.

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

Что я использовал:

#!/usr/bin/env python3

import os
import shutil

source_dir = "/home/source_folder"; target_folder = "/home/target_folder"; extensions = (".txt",)

dup = 1
for root, dirs, files in os.walk(source_dir):
    for name in files:
        if name.endswith(extensions):
            file = root+"/"+name
            while os.path.exists(target_folder+"/"+name):
                name = name[:name.rfind(".")]+"_"+str(dup)+name[name.rfind("."):]
                dup = dup+1
            shutil.move(file, target_folder+"/"+name)

Проблема - все файлы переименованы с номерами, не только дубликаты.
Идеальным решением было бы добавить иерархию дат только к имени для дубликатов.

Какие-нибудь исправления в этом коде?

Заранее спасибо!

1
задан 12 December 2020 в 17:24

0 ответов

Другие вопросы по тегам:

Похожие вопросы: