2014-05-10 46 views
0

我試圖讀取通過多部分POST上傳的製表符分隔的文本文件。我使用Python/Webapp2/Jinja2在Google App Engine上運行此代碼。從cgi.FieldStorage實例讀取文本

我得到這個錯誤在該行如下所示:「AttributeError的:(兩個下劃線)出口(兩個下劃線)」

你能告訴我什麼,我做錯了,以及如何使這項工作?謝謝!

class FileReader(webapp2.RequestHandler): 

def post(self): 

    field_storage = self.request.POST.get("file", None) 
    if isinstance(field_storage.file, cgi.FieldStorage): 

     with field_storage as csvfile: ## This line causes an error "AttributeError: __exit__" 
     reader = csv.reader(csvfile, dialect=csv.excel_tab) 

     for row in reader: 
      ... 
+0

行'讀卡器= csv.reader(csvfile,方言= csv.excel_tab)'應縮進,如應該一切,如果你打算以後要使用該文件。你的縮進在這裏意外嗎? – Dannnno

回答

0

field_storage.file是一個StringIO對象。沒有必要打開它,因爲它已經是一個打開的文件對象。

因此,與跳過並嘗試:

reader = csv.reader(field_storage.file, dialect=csv.excel_tab) 
+0

它運作得非常好。謝謝。 –