インスタンス化された後、CSV ライター/リーダー オブジェクトによって使用されるファイル オブジェクトにアクセスする方法はありますか? csv モジュールを開いたところ、コンテストが組み込まれているようです。また、ファイル オブジェクトをプロパティとして設定しようとしましたが、次のエラーが発生します。
AttributeError: '_csv.writer' object has no attribute 'fileobj'
csv.writer
「組み込み」関数です。つまり、Pythonではなくコンパイル済みのCコードで記述されています。そのため、Pythonコードからその内部変数にアクセスすることはできません。
そうは言っても、ファイルオブジェクトを見つけるためにcsv.writerオブジェクトを検査する必要がある理由はわかりません。そのオブジェクトは、オブジェクトの作成時に指定されます。
w = csv.writer(fileobj, dialect, ...)
したがって、後でそのオブジェクトにアクセスする必要がある場合は、別の変数に保存するだけです。
私が知る限り、一度 csv オブジェクトに入れたファイル オブジェクトを元に戻す簡単な方法はありません。私のアプローチは、おそらく、使用しているcsvライターとリーダーをサブクラス化して、そのデータを持ち運ぶことができるようにすることです。もちろん、これは、ファクトリ関数が作成するクラスの型に直接アクセスできることを前提としています (とりわけ)。