Как переместить пакеты файлов в Python? - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть папка с 1092 файлами.Мне нужно переместить эти файлы в новый каталог партиями по 10 (каждая новая папка будет иметь только 10 файлов каждый, поэтому не более 110 папок).

Я попробовал этот код, и теперь папки былисоздан, но я не могу найти ни одного оригинального файла (???).Их нет ни в оригинальных, ни во вновь созданных папках ...

path = "/home/user/Documents/MSc/Imagens/Dataset"
paths = []

for root, dirs, file in os.walk(path):
    for name in file:
        paths.append(os.path.join(root,name))

start = 0
end = 10

while end <= 1100:
    dest = str(os.mkdir("Dataset_" + str(start) + "_" + str(end)))
    for i in paths[start:end]:
        shutil.move(i, dest)
    start += 10
    end += 10

Есть идеи?

1 Ответ

0 голосов
/ 28 февраля 2019

С помощью команды move вы перемещаете все 10 файлов в одну папку, но не в эту папку, так как имена файлов отсутствуют.И dest - нет, поскольку os.mkdir() ничего не возвращает.

Вам необходимо добавить имя файла к dest:

dataset_dirname = "Dataset_" + str(start) + "_" + str(end)
os.mkdir(dataset_dirname)
dataset_fullpath = os.path.join(path, dataset_dirname)
for i in paths[start:end]:
    # append filename to dataset_fullpath and move the file
    shutil.move(i, os.path.join(dataset_fullpath , os.path.basename(i)))
...