3

サーバーにアップロードされたファイルの分析に問題があります。理想的には、ユーザーが .csv をアップロードimport numpy as npし、ファイル内のデータから数値積分 (したがって ) を実行し、結果を返すことです。分析を行う前に cgi 部分をテストするために、以下の python スクリプトを作成しました。私の問題は、メッセージが常に空白で表示されるため、最後にブラウザーに空白の html ページが表示されることです。

明らかに、ファイルを正しく読み取っていません (つまり、ファイルを分析できません) が、何が間違っているのかわかりません。私自身の検索は、私が以下に持っているものがうまくいくはずであることを示しています。

#!/usr/bin/python

#---------------------------------------------
#=============================================
#---------------------------------------------
#imports

#import csv
#import time as tm
#import numpy as np
#import os
import cgi, cgitb

cgitb.enable()

form = cgi.FieldStorage()

#The variables
#httpopen=""
#httpclose=""
message="meow"

#get the fileitem
fileitem=form['userfile']
if fileitem.file:
    #yay...we got a file
    message=fileitem.file.readline()


print """\
Content-Type: text/html\n
<html><body>
<p>%s</p>
</body></html>
""" % (message,)

そして、アップロードを提供する html フォームは次のとおりです。

<html>
<body>
   <form enctype="multipart/form-data" 
                     action="capacity_rewrite.py" method="post">
   <p>File: <input type="file" name="userfile" /></p>
   <p><input type="submit" value="Upload" /></p>
   </form>
</body>
</html>

ありがとう、

4

1 に答える 1

2

アップロードされたファイルから1行しか読み取っていません。おそらく、その最初の行は空白行ですか?代わりに試してくださいfileitem.file.read()。ファイル全体が文字列に読み込まれます。メモリが不足する可能性があるため、大きなファイルに対してはこれを行わないでください。ただし、テストを理解するのに役立ちます。

于 2012-11-07T19:19:21.917 に答える