实例化后,有什么方法可以访问 CSV 写入器/读取器对象使用的文件对象?我打开了 csv 模块,看来它的比赛是内置的。我还尝试将文件对象设置为属性,但出现以下错误:
AttributeError: '_csv.writer' object has no attribute 'fileobj'
csv.writer
是一个“内置”功能。也就是说,它是用编译后的 C 代码而不是 Python 编写的。所以它的内部变量不能从 Python 代码中访问。
话虽如此,我不确定您为什么需要检查 csv.writer 对象以找出文件对象。该对象是在创建对象时指定的:
w = csv.writer(fileobj, dialect, ...)
因此,如果您以后需要访问该对象,只需将其保存在另一个变量中即可。
据我所知,一旦将文件对象放入 csv 对象,就没有直接的方法可以将其取出。我的方法可能是对您正在使用的 csv 编写器和读取器进行子类化,以便他们可以随身携带这些数据。当然,这假设能够直接访问工厂函数创建的类的类型(除其他外)。