我有一个约有600,000张照片的文件夹。我需要移动其中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)