159 votes

ValueError : Opération E/S sur fichier fermé

```html

import csv    

with open('v.csv', 'w') as csvfile:
    cwriter = csv.writer(csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL)

for w, c in p.items():
    cwriter.writerow(w + c)

Ici, p est un dictionnaire, w et c sont tous les deux des chaînes de caractères.

Lorsque j'essaie d'écrire dans le fichier, cela renvoie l'erreur :

ValueError: I/O operation on closed file.

```

0voto

Anis R. Points 5631

Une autre cause possible est le cas où, après une série de copypasta, vous finissez par lire deux fichiers et assignez le même nom aux deux gestionnaires de fichiers, comme ci-dessous. Notez la déclaration with open imbriquée.

with open(file1, "a+") as f:
    # quelque chose...
    with open(file2, "a+", f):
        # maintenant le gestionnaire de fichier de file2 est appelé f!

    # tentative d'écrire dans file1
    f.write("blah") # erreur!!

Le correctif serait alors d'attribuer des noms de variables différents aux deux gestionnaires de fichiers, par exemple f1 et f2 au lieu de simplement f.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X