从熊猫数据框中的路径移动文件

时间:2019-10-03 11:22:46

标签: python pandas shutil fnmatch

我有一个约有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)

0 个答案:

没有答案