2014-05-10 1 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

아름답게 작동합니다. 감사합니다. –