我正在創建一個將大量數據轉換爲CSV格式的腳本。它使用mapreduce API在Google AppEngine上運行,該API僅與相關,因爲它意味着每行數據在回調函數中分別格式化並輸出。將單行格式化爲CSV
我想利用csv
模塊中已有的邏輯將我的數據轉換爲正確的格式,但由於CSV編寫器需要類似文件的對象,因此我必須爲每個對象實例化一個StringIO
行,將行寫入對象,然後每次返回對象的內容。
這似乎很愚蠢,我想知道是否有任何方式來訪問csv
模塊的內部CSV格式化邏輯沒有寫作部分。
'tempfile'模塊有幫助嗎?你可以給出一個文件句柄,它在OS – wim 2012-01-03 11:11:32
@wim中並不真正可見。謝謝,但不是真的。我仍然需要爲每一行單獨一個,即使它不適用於AppEngine上無法訪問文件系統的事實。 – 2012-01-03 11:28:51
從來沒有看過mapreduce,所以我不確定約束,特別是當涉及到回調執行環境時。您的程序(提供回調的程序)是否在整個調用mapreduce期間運行? IE瀏覽器。你能保持全局狀態嗎?還是你真的需要重新實例化一下像'StringIO'這樣的東西? (不建議保留全局對象,介意你,這只是我想知道的環境) – 2012-01-03 11:51:00