Mon programme semble fuir les handles de fichiers. Comment puis-je savoir où?Détecte les fuites de handle de fichier en python?
Mon programme utilise des handles de fichiers à différents endroits - sortie de processus fils, appelez ctypes
API (ImageMagick) ouvre les fichiers, et ils sont copiés.
Il se bloque dans shutil.copyfile
, mais je suis sûr que ce n'est pas l'endroit où il fuit.
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Python25\Lib\site-packages\magpy\magpy.py", line 874, in main
magpy.run_all()
File "C:\Python25\Lib\site-packages\magpy\magpy.py", line 656, in run_all
[operation.operate() for operation in operations]
File "C:\Python25\Lib\site-packages\magpy\magpy.py", line 417, in operate
output_file = self.place_image(output_file)
File "C:\Python25\Lib\site-packages\magpy\magpy.py", line 336, in place_image
shutil.copyfile(str(input_file), str(self.full_filename))
File "C:\Python25\Lib\shutil.py", line 47, in copyfile
fdst = open(dst, 'wb')
IOError: [Errno 24] Too many open files: 'C:\\Documents and Settings\\stuart.axon\\Desktop\\calzone\\output\\wwtbam4\\Nokia_NCD\\nl\\icon_42x42_V000.png'
Press any key to continue . . .
Pas tout à fait une réponse, mais si vous utilisez Python 2.5 ou plus récent, regardez dans le mot clé "with" qui peut automatiquement fermer les fichiers pour vous une fois que vous avez terminé avec eux. –