我有一个文件夹,里面有大约 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)