获取CSV读写器对象使用的文件对象
问题描述:
有没有任何方法可以在实例化后访问CSV写入器/读取器对象使用的文件对象?我打开了csv模块,看来它的比赛是内置的。我也试着设置文件对象的属性,但我得到以下错误:获取CSV读写器对象使用的文件对象
AttributeError: '_csv.writer' object has no attribute 'fileobj'
答
csv.writer
是“内置”的功能。也就是说,它是用编译的C代码而不是Python编写的。所以它的内部变量不能从Python代码中访问。
这就是说,我不确定为什么你需要检查csv.writer对象来找出文件对象。创建对象时指定了该对象:
w = csv.writer(fileobj, dialect, ...)
因此,如果您稍后需要访问该对象,则将其保存在另一个变量中。
答
从我可以告诉,没有简单的方法来获取文件对象,一旦你把它放入一个CSV对象。我的方法可能是将您正在使用的csv作者和读者进行子类化,以便他们可以随身携带这些数据。当然,这是假设能够直接访问工厂功能所做的类的类型(等等)。
我没有创建编写器,工厂函数正在创建csv.writer对象,所以我实际上没有对文件对象的引用。 – 2008-10-13 18:41:39