我正在尝试将文件从同一目录中的一个文件夹移动到另一个文件夹,购买时遇到了问题。
这是到目前为止我的代码:
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
的文件。
关于如何解决这个问题的任何想法?
答案 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文件夹。最好在代码本身中进行此类检查。