Obtenir un objet fichier utilisé par un objet lecteur / enregistreur CSV

StackOverflow https://stackoverflow.com/questions/198465

  •  10-07-2019
  •  | 
  •  

Question

Existe-t-il un moyen d'accéder à l'objet fichier utilisé par un objet graveur / lecteur CSV après son instanciation? J'ai ouvert le module csv, et il semble que son concours soit intégré. J'ai également essayé de définir l'objet fichier en tant que propriété, mais l'erreur suivante apparaît:

AttributeError: '_csv.writer' object has no attribute 'fileobj'
Était-ce utile?

La solution

csv.writer est un "intégré". une fonction. C'est-à-dire qu'il est écrit en code C compilé plutôt qu'en Python. On ne peut donc pas accéder à ses variables internes à partir du code Python.

Cela étant dit, je ne suis pas certain de savoir si vous auriez besoin d'inspecter l'objet csv.writer pour connaître l'objet fichier. Cet objet est spécifié lors de la création de l'objet:

w = csv.writer(fileobj, dialect, ...)

Donc si vous avez besoin d'accéder à cet objet plus tard, sauvegardez-le dans une autre variable.

Autres conseils

À ce que je sache, il n’existe aucun moyen simple de récupérer l’objet fichier une fois que vous l’avez inséré dans un objet csv. Mon approche consisterait probablement à sous-classer le rédacteur CSV et les lecteurs que vous utilisez afin qu'ils puissent transporter ces données avec eux. Bien entendu, cela suppose la capacité d'accéder directement aux types de classes créés par la fonction fabrique (entre autres).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top