Получить объект File, используемый объектом CSV Reader / Writer

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

  •  10-07-2019
  •  | 
  •  

Вопрос

Есть ли способ получить доступ к объекту файла, используемому объектом записи / чтения CSV после его создания? Я открыл модуль CSV, и кажется, что его конкурс встроен. Я также попытался установить объект файла как свойство, но получаю следующую ошибку:

AttributeError: '_csv.writer' object has no attribute 'fileobj'
Это было полезно?

Решение

csv.writer является " встроенным " функция. То есть он написан в скомпилированном C-коде, а не в Python. Поэтому его внутренние переменные не могут быть доступны из кода Python.

При этом, я не уверен, почему вам нужно было бы проверить объект csv.writer, чтобы найти объект файла. Этот объект указывается при создании объекта:

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

Поэтому, если вам понадобится получить доступ к этому объекту позже, просто сохраните его в другой переменной.

Другие советы

Из того, что я могу сказать, нет простого способа вернуть объект файла, как только вы поместите его в объект CSV. Мой подход, вероятно, заключался бы в создании подкласса писателя csv и читателей, которых вы используете, чтобы они могли нести эти данные вместе с собой. Конечно, это предполагает возможность прямого доступа к типам классов, которые выполняет функция фабрики (помимо прочего).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top