В настоящее время я пишу скрипт, который циклически перемещается по всем файлам в папке и переименовывает их в соответствии с соглашением об именах.Использование glob для поиска дубликатов имен файлов с тем же номером в нем
То, что я хотел бы достичь, следующее: если скрипт находит 2 файла с одинаковым номером в имени файла (например, «101 test» и «101 real»), он переместит эти два файла в другую папку с именем «duplicates».
Мой первоначальный план состоял в том, чтобы использовать glob для перемещения по всем файлам в папке и добавления в список каждого файла, содержащего определенное число. Затем список будет проверяться по длине, и если длина превысит 1 (т. Е. Есть 2 файла с одинаковым номером), тогда файлы будут расположены в этой папке «дубликатов». Однако по какой-то причине это не работает.
Вот мой код, я надеялся, что кто-то с большим опытом, чем я могу дать мне некоторое представление о том, как достичь своей цели, благодаря !:
app = askdirectory(parent=root)
for x in range(804):
listofnames = []
real = os.path.join(app, '*{}*').format(x)
for name in glob.glob(real):
listofnames.append(name)
y = len(listofnames)
if y > 1:
for names in listofnames:
path = os.path.join(app, names)
shutil.move(path,app + "/Duplicates")
Один альтернативное предложение, чтобы с помощью списка, чтобы создать словарь, который отображает число на количество раз это происходит {номер : произошло время}. Затем вы можете просто искать время, имевшееся для значений, превышающих 1. – pomegranate
Привет @pomegranate, спасибо за ответ, да, это звучит хорошо, я посмотрю, как это сделать. Однако, с точки зрения моего фактического метода, чтобы найти дубликаты в списке/словаре, как вы думаете, мой код должен работать? – Ruthus99