1

Google App Engine アプリケーションの一部として TSV ファイルの内容を読み込もうとしています。

以下を使用して、ファイルから問題なく読み取ることができます。

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

ただし、ブロブリーダーを使用してブロブストアからデータを読み取る必要があります。

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

(この問題が発生しているコード全体のコピーをここにアップロードしました)

rU 引数がないと、引用符で囲まれていないフィールドで改行エラーが発生します。

エラー: 引用符で囲まれていないフィールドに改行文字が見られます - ファイルをユニバーサル改行モードで開く必要がありますか?

このエラーが発生しないようにファイルを修正するか、ユニバーサル改行モードでブロブストアから開くことをエミュレートしたいですか?

私のファイルは約 20MB で、その縮小サンプル (スクリプトがまだ失敗している) は、ここにあります

4

2 に答える 2

1

サンプルファイルから直接エラーを再現することはできません。あなたはできる?

与えられたblob = open('sample-file.tsv', 'rb').read()

  1. reader = csv.reader(blob, dialect='excel-tab')予想どおり、1バイト程度のフィールドが生成されます。

  2. それぞれ約10000列の50行を置換StringIO.StringIO(blob)または生成すると、正しく機能しているように見えます。blob.splitlines()

(1)BLOBアップロードコード(および関連するドキュメントのURL)(2)GAEでエラーが発生しているコードを表示しない限り、それ以上の支援はできないようです。

于 2011-03-30T22:16:30.140 に答える
-1

Google App EngineでPythonの「universalnewline」を使用してcsvファイルをアップロードして解析すると、次の答えが得られました。

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

GNU/LinuxでMac形式のcsvファイルを読み取る。

于 2012-01-09T23:49:42.893 に答える