У меня есть папка с 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)