Obtener el objeto de archivo utilizado por un objeto de lector / escritor CSV

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

  •  10-07-2019
  •  | 
  •  

Pregunta

¿Hay alguna forma de acceder al objeto de archivo utilizado por un objeto de escritor / lector CSV después de haber sido instanciado? Abrí el módulo csv, y parece que su concurso está integrado. También intenté configurar el objeto de archivo como una propiedad, pero aparece el siguiente error:

AttributeError: '_csv.writer' object has no attribute 'fileobj'
¿Fue útil?

Solución

csv.writer es un " integrado " función. Es decir, está escrito en código C compilado en lugar de Python. Por lo tanto, no se puede acceder a sus variables internas desde el código Python.

Dicho esto, no estoy seguro de por qué necesitaría inspeccionar el objeto csv.writer para encontrar el objeto del archivo. Ese objeto se especifica al crear el objeto:

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

Entonces, si necesita acceder a ese objeto más tarde, simplemente guárdelo en otra variable.

Otros consejos

Por lo que puedo decir, no hay una forma directa de recuperar el objeto de archivo una vez que lo coloca en un objeto csv. Mi enfoque probablemente sería subclasificar el escritor y los lectores de csv que está utilizando para que puedan llevar esa información consigo. Por supuesto, esto supone la capacidad de poder acceder directamente a los tipos de clases que realiza la función de fábrica (entre otras cosas).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top