2

appengine で xlrd を使用しています。フラスコを使っています

入力ファイルを読み取れず、同じエラー メッセージが表示され続ける

コードは

def read_rows(inputfile):
    rows = []
    wb = xlrd.open_workbook(inputfile)
    sh = wb.sheet_by_index(0)
    for rownum in range(sh.nrows):
        rows.append(sh.row_values(rownum))
    return rows

@app.route('/process_input/',methods=['POST','GET'])
def process_input():
  inputfile = request.files['file']
  rows=read_rows(request.files['file'])
  payload = json.dumps(dict(rows=rows))
  return payload

これは、アップロードしてファイルとして保存していないことが原因である可能性があることを認識しています。これに関する回避策はありますか?これは他の多くの人にも役立ちます。どんな助けでも大歓迎です、thx

更新: 以下に投稿した解決策が見つかりました。xlrd の使用に混乱している方は、私が投稿したオープン ソース プロジェクトのリポジトリを参照してください。キーは、ファイル名ではなくファイルの内容を渡しています

4

3 に答える 3

3

使用する:

wb = xlrd.open_workbook(file_contents=inputfile)

呼び出す方法では、実際のファイルをラップする Flask オブジェクトopen_workbookではなく、ファイル名を渡すことを想定しています。FileStorage

于 2012-05-06T18:32:48.187 に答える
0

トレースバックから判断してください。

File "/Users/fauzanerichemmerling/Desktop/GAEHxl/gae/lib/xlrd/init.py", line 941, in biff2_8_load
    f = open(filename, open_mode)

この行を次のように変更してみてください。

f = filename
于 2012-05-05T07:51:17.920 に答える