2011-02-12 2 views
1

사용자가 TextProperty 또는 BlobProperty에 저장할 수있는 "csv 유형"파일을 사용자가 업로드하는 Google Appengine Python 프로젝트에서 작업하고 있습니다. 1 메가 바이트 밑이다.Google Appengine TextProperty 또는 BlobProperty에서 파일과 같이 한 줄씩 텍스트를 읽습니다.

내가 알아낼 수없는 것은 나중에 BLOB에서 파일을 읽고 행별로 처리하는 방법입니다.

import csv 

class Upload(db.Model): 
    #file = db.TextProperty(verbose_name='Uploaded File', required=True) 
    file = db.BlobProperty(verbose_name='Uploaded File', required=True) 
    # ... 

    def ProcessCsv(self): 
     csvReader = csv.reader(self.file,delimiter=',') 
     for row in csvReader: 
      print(', '.join(row)) 

인쇄는 각 라인

어떤 아이디어에 "파일"의 각 문자를 출력한다?

답변

1

필자는 파일 객체 또는 목록을 원할 때 csv.reader에 문자열을 건네고 있다고 생각합니다.

try : self.file.split ('\ n') : 문자열을 문자열 목록으로 변환합니다.

+0

. 감사합니다. – DerpDerp

+0

완벽한 솔루션이라고 확신하지 못합니다. csv 파일이 커지면 비효율적 일 수 있습니다. – Calvin

0

blobReader는 blob에서 읽는 파일과 비슷한 객체입니다. 이처럼, 당신의 BlobInfo 객체에 .open()를 호출하여 하나를 얻을 수 있습니다

내가했지만 나는 그것이 적합한 솔루션이라고 생각하지 않았다 무엇
f = self.file.open() 
관련 문제