1

我正在尝试通过 Django 应用程序将 CSV 文件上传到 Google App Engine 中的 blobstore 文件中。我遇到了一个问题,即在上传文件时转储​​文件可能会出现错误的换行符。所以,我需要在 python 的通用换行模式下打开上传的文件。Django 文档建议我可以在 File 对象上使用 .open() 来设置新模式。

这是我提出的解决方案:

        filename = files.blobstore.create(mime_type='text/csv')
        csvfile = request.FILES.get('csvfile')

        with files.open(filename, 'a') as output_file:
            with csvfile.open(mode='rU') as input_file:
                output_file.write(input_file.readline())

(“文件”是 App Engine API 的一部分)

这对我来说似乎是正确的,但我想知道是否有其他人遇到过类似的情况和更好的解决方案?

4

1 回答 1

1

我已经设法做到这一点。您必须迭代上传的文件

filename = files.blobstore.create(mime_type='text/csv')
csvfile = request.FILES.get('csvfile')

with files.open(filename, 'a') as output_file: 
    writer = csv.writer(output_file, quoting=csv.QUOTE_NONE)
    for row in csv.reader(csvfile.read().splitlines()):
         writer.writerow(row)

files.finalize(filename)

希望它有效

于 2013-08-06T02:47:52.437 回答