Python的功能不将文件复制到指定的文件夹

时间:2018-09-09 17:27:33

标签: python shutil

我正在尝试将文件从同一目录中的一个文件夹移动到另一个文件夹,购买时遇到了问题。

这是到目前为止我的代码:

current_dir = os.path.dirname(os.path.realpath(__file__))
folders = get_all_folders(current_dir)

os.mkdir('FINAL') # Final output stored here

for folder in folders:
    img_list = list(os.listdir(current_dir))

    for img in img_list:
        img_path = os.path.join(current_dir, img)

        final_folder = os.path.join(current_dir, 'FINAL')
        shutil.copyfile(img_path, final_folder)

FINAL文件夹是按预期创建的,但是出于将img复制到该文件夹​​的目的,在我正在遍历的每个目录中都创建了一个名为FINAL的文件。

关于如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:0)

我认为您在这里犯的错误是您试图在当前目录中查找图像,而不是在当前目录中查找文件夹。因此,当您致电shutil.copyfile()时,理想情况下,应该根据您提供的代码获得一个IsADirectoryError。无论如何,我想这应该可行:

current_dir = os.path.dirname(os.path.realpath(__file__))

# Get all folder names in current directory before making the "FINAL" folder.
folders = get_all_folders(current_dir)

os.mkdir('FINAL') # Final output stored here

for folder in folders:
    folder_path = os.path.join(current_dir, folder)
    img_list = list(os.listdir(folder_path))

    for img in img_list:
        img_path = os.path.join(folder_path, img)

        final_folder = os.path.join(current_dir, 'FINAL')
        shutil.copyfile(img_path, final_folder)

此外,每次运行此脚本时,都需要删除FINAL文件夹。最好在代码本身中进行此类检查。

相关问题