Sembra che il mio programma abbia perdite di handle di file. Come posso sapere dove?Rileva il file che gestisce le perdite in python?
Il mio programma utilizza gli handle di file in alcuni punti diversi, in uscita da processi figlio, chiama ctypes
API (ImageMagick) apre i file e vengono copiati.
Si blocca in shutil.copyfile
, ma sono abbastanza sicuro che questo non è il posto che perde.
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 . . .
Non proprio una risposta, ma se stai usando Python 2.5 o più recente, cerca nella parola chiave "with" che può chiudere automaticamente i file per te una volta che hai finito con loro. –