Получить объект File, используемый объектом CSV Reader / Writer - PullRequest
2 голосов
/ 13 октября 2008

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

AttributeError: '_csv.writer' object has no attribute 'fileobj'

Ответы [ 2 ]

3 голосов
/ 13 октября 2008

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

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

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

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

0 голосов
/ 14 июля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...