如何仅将文本文件中列出的图像从一个文件夹复制到另一个文件夹而忽略丢失的图像?

How to copy only the images listed in a text file from one folder to another while ignoring the missing images?

我编写的代码仅将 'ID' 列下的 CSV 文件中列出的图像从源文件夹复制到目标文件夹。但是,CSV 文件中列出的几个图像名称在源文件夹中不存在。我必须忽略那些丢失的图像,只将源文件夹中可用的图像复制到目标文件夹。当前代码在 CSV 文件中遇到源文件夹中不存在的图像名称时会引发错误。

import csv
import os
import shutil

source = r'C:\source_folder\source_images'
destination = r'C:\dest_folder\dest_images'

with open('data.csv') as csvfile:
       reader = csv.DictReader(csvfile)
       for column in reader:
           shutil.copyfile(os.path.join(source, column['ID']), os.path.join(destination, column['ID']))

正在从评论转换为答案:

import csv
import os
import shutil

source = r'C:\source_folder\source_images'
destination = r'C:\dest_folder\dest_images'

with open('data.csv') as csvfile:
       reader = csv.DictReader(csvfile)
       for column in reader:
           if os.path.exists(os.path.join(source, column['ID'])) and os.stat(os.path.join(source, column['ID'])).st_size != 0:
               shutil.copyfile(os.path.join(source, column['ID']), os.path.join(destination, column['ID']))