Je veux choisir au hasard 10 images du jeu de données d'entraînement comme données de test. Si je ne fais que copier les données sélectionnées dans le chemin de destination, cela fonctionne. Mais si je veux supprimer les données source, il ne peut en supprimer que quelques-unes. J'ai essayé les fonctions os.remove() et shutil.move(), mais le problème persiste. Ci-dessous est mon script:Pourquoi os.remove() ou shutil.move() ne peut déplacer qu'une partie des fichiers
for label in labels:
training_data_path_ch1 = os.path.join(training_data_folder, label, 'ch1')
test_data_path_ch1 = os.path.join(test_data_folder, label, 'ch1')
training_data_path_ch5 = os.path.join(training_data_folder, label, 'ch5')
test_data_path_ch5 = os.path.join(test_data_folder, label, 'ch5')
ch1_imgs = listdir(training_data_path_ch1)
# Randomly select 10 images
ch1_mask = np.random.choice(len(ch1_imgs), 10)
ch1_selected_imgs = [ch1_imgs[i] for i in ch1_mask]
for selected_img in ch1_selected_imgs:
ch1_img_path = os.path.join(training_data_path_ch1, selected_img)
shutil.copy2(ch1_img_path, test_data_path_ch1)
os.remove(ch1_img_path)
print('Successfully move ' + label + ' ch1 images')
Et j'ajoute une image pour montrer l'état de fonctionnement.
Vous pouvez voir, le programme en effet peut copier les images et supprimer certaines des images, mais pourquoi il ne peut pas supprimer toutes les images?
Des idées? J'apprécie toute aide!
Merci beaucoup! Je n'ai pas réalisé ce problème. –