Перемещение файлов по пути во фрейме данных 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)