J'ai ce code dont je ne comprends pourquoi il me renvoie la ValueError code. Si je comprends bien, c'est parce que le fichier est deja ferme. Mais puisque l'objet csv est dans une variable pourquoi devrait-il rester ouvert ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    #! /usr/bin/env python
    # -*- coding: UTF-8 -*-
 
    import csv
 
    class A:
 
        def __init__(self):
            self.PATH = '/path/to/file'
            self.READER = None
 
        def get_params(self):
            try:
                File = open(self.PATH, 'rb')
                self.READER = csv.DictReader(File)
            finally:
                File.close()
 
            return self.READER
 
    inst = A()
    inst.READER = inst.get_params()
    for i in inst.READER:
        print i
error code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
    Traceback (most recent call last):
      File "reader.py", line 23, in <module>
        for i in inst.READER:
      File "/usr/lib/python2.6/csv.py", line 103, in next
        self.fieldnames
      File "/usr/lib/python2.6/csv.py", line 90, in fieldnames
        self._fieldnames = self.reader.next()
    ValueError: I/O operation on closed file
Quelqu'un a une idee ?

Merci