fermeture de fichier avec return
Bonjour, j'ai un souci avec un io.BufferedReader qui se ferme tout seul!
Je n'ai pas trouvé de solution sur le net, j'ose donc poster un nouveau sujet, j’espère.
Le code simplifié du problème:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
import io
import os
def read():
class BufferedReader(io.BufferedReader):
def __init__(self, *args, **kwargs):
io.BufferedReader.__init__(self, *args, **kwargs)
def __del__(self):
os.remove(self.name)
with open("fichier", "wb") as f:
f.write(b"voici le contenu du fichier...")
flux = open("fichier", mode="rb")
f = BufferedReader(flux.raw)
print(f.read(5)) # affiche b'voici', donc c'est bon le fichier est ouvert
return f
f = read()
print(f.read(5)) # retourne ValueError: read of closed file |
Je ne comprend pas pourquoi le fichier se ferme? Une idée de remède? :calim2: