获取CSV读写器对象使用的文件对象

问题描述:

有没有任何方法可以在实例化后访问CSV写入器/读取器对象使用的文件对象?我打开了csv模块,看来它的比赛是内置的。我也试着设置文件对象的属性,但我得到以下错误:获取CSV读写器对象使用的文件对象

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

csv.writer是“内置”的功能。也就是说,它是用编译的C代码而不是Python编写的。所以它的内部变量不能从Python代码中访问。

这就是说,我不确定为什么你需要检查csv.writer对象来找出文件对象。创建对象时指定了该对象:

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

因此,如果您稍后需要访问该对象,则将其保存在另一个变量中。

+1

我没有创建编写器,工厂函数正在创建csv.writer对象,所以我实际上没有对文件对象的引用。 – 2008-10-13 18:41:39

从我可以告诉,没有简单的方法来获取文件对象,一旦你把它放入一个CSV对象。我的方法可能是将您正在使用的csv作者和读者进行子类化,以便他们可以随身携带这些数据。当然,这是假设能够直接访问工厂功能所做的类的类型(等等)。