Перемещение файлов по пути во фрейме данных Pandas

У меня есть папка, в которой около 600000 фотографий. Мне нужно переместить 500 избранных фотографий. У меня есть фрейм данных с этими путями к файлам как значения в одном из столбцов. Мне нужно пройти через этот фрейм данных, вытащить конкретное изображение и установить его в другую папку.

Путь - это полный путь для включения файла. Также есть столбец файла, в котором есть только имя файла.

Ниже приводится пример фрейма данных:

import pandas as pd
dict1 = {'path': ['D:\\images\\train\\roof\\1.jpg', 'D:\\images\\train\\roof\\2.jpg', 'D:\\images\\train\\roof\\3.jpg'
                  ,'D:\\images\\train\\roof\\4.jpg', 'D:\\images\\train\\roof\\5.jpg'],
        'image': ['1.jpg','2.jpg','3.jpg','4.jpg','5.jpg',]}
df = pd.DataFrame(dict1)
df

Вот что я пробовал. Это модифицированная версия перемещения файлов, основанная на подстановочном знаке.

import os
import shutil
import fnmatch
def gen_find(filepat,top):
    for path, dirlist, filelist in os.walk(top):
        for name in fnmatch.filter(filelist,filepat):
            yield os.path.join(path,name)

if __name__ == '__main__':
    src = df['path'] # input
    dst = 'D:\\images\\Sample' # desired     location

    filesToMove = gen_find(src)
    for name in filesToMove:
        shutil.move(name, dst)

Я также пробовал следующее:

if __name__ == '__main__':
    src = 'D:\\images\\train\\roof\\'+df['image'] # input
    dst = 'D:\\images\\Sample' # desired     location

    filesToMove = gen_find(src)
    for name in filesToMove:
        shutil.move(name, dst)

0 ответов

Другие вопросы по тегам