Скопируйте случайные файлы по 5 штук в другую папку - PullRequest
0 голосов
/ 10 июля 2020

У меня есть большой список файлов, которые я смог создать в случайном порядке (с настраиваемым столбцом «случайное число»). (Я почему-то даже сделал список этих файлов в файле со списком txt).

Но теперь мне нужно поместить их в ... давайте посмотрим ... 740 файлов делятся на 5 ... на 148 новых папок. Хорошо, я могу создать новые 148 папок с помощью extDir utiity, но как я могу скопировать каждые 5 файлов в одну из 148 папок по отдельности

, чтобы 1-5 файлов go в каталог 1 были 6- 10 файлов go в dir2 11-15 в dir3 et c

Да, я пытался сделать это вручную .. но заблудился .. так же мне нужно повторить операцию с разными файлами примерно десять раз .... Я пытался использовать для этого Python, но я начинающий программист.

Все, что у меня есть, это текстовый файл всех файлов в папке, и теперь мне нужно разделить его на " modules »на 5 файлов и скопируйте каждый в разные папки по возрастанию.

1 Ответ

0 голосов
/ 10 июля 2020

Предполагая, что файлы хранятся в каталоге files, следующий код выполняет итерацию по всем файлам в каталоге и перемещает их в dirX, увеличивая X каждые пять файлов.

import os
import shutil

filecounter = 0
dircounter = 0

directory = "files"

for file in os.listdir(directory):
    absoluteFilename = os.path.join(directory, file)

    if filecounter % 5 == 0:  # increment dir counter every five files processed
        dircounter += 1
        os.mkdir(os.path.join(directory, "dir"+str(dircounter)))

    targetfile = os.path.join(directory, "dir"+str(dircounter), file)  # builds absolute target filename
    shutil.move(absoluteFilename, targetfile)

    filecounter += 1


Здесь используется модуль для увеличения dircounter каждые пять файлов.

Обратите внимание, что порядок файлов произвольный (см. os.listdir ). Возможно, вам придется заранее отсортировать список.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...