J’ai un ensemble de tests système qui lancent certains processus, créent des fichiers, etc., puis les ferment tous et suppriment les fichiers.
Je rencontre deux erreurs intermittentes sur le nettoyage:
Sur un fichier journal créé par l’un des processus:
os.remove(log_path) WindowsError: [Error 32] The process cannot access the file because it is being used by another process:
Lorsque vous essayez de supprimer le répertoire de sortie avec shutil.rmtree
:
File "C:\Python27\lib\shutil.py", line 254, in rmtree os.rmdir(path) WindowsError: [Error 145] The directory is not empty: 'C:\\TestTarget\\xxx'
Les deux erreurs disparaissent si j’insère un délai de 2 secondes avant le tidyup, donc je pense que le problème vient du temps que Windows met à libérer les fichiers. Evidemment, je voudrais éviter de retarder mes tests, y a-t-il un moyen d’attendre que le système de fichiers se soit rattrapé?
Essayez avec:
import shutil shutil.rmtree('/folder_path')
Essayez également d’append un intervalle de veille avant d’arrêter les processus.