Я бы сделал это следующим образом:
import shutil
import os
source = '/Users/JohnCN/photo_database/mugshot_frontal/'
files = os.listdir(source)
for idx, f in enumerate(files):
destination = '/Users/JohnCN/photo_DBsorted/{d:03d}'.format(d=(idx + 1))
shutil.move(source + f, destination)
Итак, что это делает?
for idx, f in enumerate(files):
подсчитывает файлы во время цикла, поэтому вы знаете индекс файла. Чтобы получить пункт назначения, idx используется в качестве имени каталога. Я предполагаю, что вы знаете, что метод format
, {d:03d}
просто говорит, что значение d, которое назначается, должно иметь длину 3 символа, значение является целым числом и дополняется нулями (например, 003). Конечно, этот код предполагает, что у вас нет более 1000 файлов, в этом случае просто увеличьте количество нулей. Например, вы можете вычислить log10
-значение числа файлов, чтобы получить количество нулей, которое вы должны добавить.