0

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

0 回答 0