我正在开发一个Google Appengine Python项目,用户将上传一个“csv类型”文件,我可以将其存储在TextProperty
或BlobProperty
中,因为它们将低于1 MB。
我无法弄清楚如何稍后从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))
print只会在每行的“文件”中打印出每个字符
有什么想法吗?
答案 0 :(得分:1)
我认为正在发生的事情是,当你想要一个文件对象或列表时,你正在将一个字符串交给csv.reader。
尝试:self.file.split('\ n')将字符串转换为字符串列表。
答案 1 :(得分:0)
你想要一个BlobReader,它是一个类似文件的对象,用于从blob中读取。您可以通过在BlobInfo对象上调用.open()
来获取一个,如下所示:
f = self.file.open()