运行代码后报错shutil.Error: Destination path 'images32_photo\0.jpg\0.jpg' already exists,如何修改
时间: 2024-09-19 12:02:20 浏览: 42
遇到 `shutil.Error: Destination path ... already exists` 错误通常是由于目标文件已经存在,而尝试将文件覆盖过去。为了避免这种冲突,你可以在移动文件之前检查目标路径是否已存在,如果存在则先删除,然后再移动。以下是修改后的代码片段:
```python
import os
import shutil
import glob
def move_images_and_clean_empty_folders(root_dir):
for folder_name in os.listdir(root_dir):
src_folder = os.path.join(root_dir, folder_name)
if os.path.isdir(src_folder):
images_in_folder = [f for f in glob.glob(os.path.join(src_folder, "*.jpg"))]
if images_in_folder:
dst_folder = os.path.join(root_dir, folder_name)
for img in images_in_folder:
# 检查目标文件是否存在,若存在则删除再移动
dest_file = os.path.join(dst_folder, os.path.basename(img))
if os.path.exists(dest_file):
os.remove(dest_file)
shutil.move(img, dst_folder)
# ...其他操作...
# 使用函数并提供主文件夹路径
main_dir = 'your_main_directory'
move_images_and_clean_empty_folders(main_dir)
```
现在,当有相同名称的文件已经存在于目标位置时,会先删除该文件再进行移动。记得替换成你实际的主文件夹路径 `'your_main_directory'`。
阅读全文