1

我正在尝试将 TSV 文件的内容作为 Google App Engine 应用程序的一部分读取。

我可以使用以下方法从文件中读取:

f=csv.reader(open(matrixpath, "rU"),dialect='excel-tab')

但是我现在需要使用 blobreader 从 blobstore 读取数据:

blob_key = ...
blobdata = blobstore.BlobReader(blob_key)
f=csv.reader(blobdata,dialect='excel-tab')

我已经上传了我在这里遇到这个问题的整个代码的副本

如果没有 rU 参数,我会在未引用字段错误中得到换行符:

错误:在未引用的字段中看到换行符 - 您需要以通用换行模式打开文件吗?

我想修复我的文件以免出现此错误,或者模拟从 blobstore 以通用换行模式打开?

我的文件大约 20MB,可以在此处找到它的缩减样本(脚本仍然失败)

4

2 回答 2

1

我无法直接从示例文件中重现错误。你能?

给定blob = open('sample-file.tsv', 'rb').read()

  1. reader = csv.reader(blob, dialect='excel-tab')正如预期的那样,产生了无数个单字节字段。

  2. 替换StringIO.StringIO(blob)blob.splitlines()生成 50 行,每行大约 10000 列......似乎工作正常。

除非您显示 (1) 您的 blob 上传代码(和相关文档的 URL)(2) 您在 GAE 上出现错误的代码,否则似乎无法提供进一步的帮助。

于 2011-03-30T22:16:30.140 回答
-1

Google App Engine 上的 Python 中使用“通用换行符”上传和解析 csv 文件,以下答案对我有用:

csv.reader(blob.open.read().splitlines())

在 GNU/Linux 上读取 mac 格式的 csv 文件。

于 2012-01-09T23:49:42.893 回答