Перемещение файлов с пути в кадре данных Pandas - PullRequest
0 голосов
/ 03 октября 2019

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

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

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

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...