Итак, в основном у меня есть несколько файлов .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)
Проблема - все файлы переименованы с номерами, не только дубликаты.
Идеальным решением было бы добавить иерархию дат только к имени для дубликатов.
Какие-нибудь исправления в этом коде?
Заранее спасибо!