获取CSV读写对象使用的文件对象
有没有办法在创建了CSV写入/读取对象之后,访问它所使用的文件对象?我查看了csv模块,发现里面的内容是内置的。我还尝试把文件对象设置为一个属性,但遇到了以下错误:
AttributeError: '_csv.writer' object has no attribute 'fileobj'
2 个回答
0
根据我的理解,一旦把文件对象放进csv对象里,就没有简单的方法可以把它取出来。我的做法可能是创建一个csv写入器和读取器的子类,这样它们就可以携带那些数据。当然,这个方法是基于你能直接访问工厂函数生成的类类型等其他条件。
3
csv.writer
是一个“内置”的函数。也就是说,它是用编译过的C语言代码写的,而不是用Python写的。所以它内部的变量是不能通过Python代码来访问的。
话虽如此,我不太明白你为什么需要查看csv.writer对象来找到文件对象。这个对象在创建时就已经指定了:
w = csv.writer(fileobj, dialect, ...)
所以如果你需要在之后访问这个对象,只需把它保存在另一个变量里就可以了。