我有一个程序可以从CSV文件中读取和排序信息,但我无法找到如何上传文件并直接读取(我认为不可能)或将其上传到服务器
我尝试使用Google的所有内容都不起作用或看起来太模糊。
有没有人知道如何从HTML表单上传文件,以便我可以在程序中阅读它?
要读取我正在使用csv模块的文件:
readerCTR = csv.reader(open("/home/ctrdata.csv", "rb"))
我正在使用一个非常基本的html表单:
<form action="test" method="post" enctype="multipart/form-data">
Upload file: <input type="file" name="myfile" /> <br />
<input type="submit" name="submit" value="Submit" />
</form>
我一直在docs.python
尝试使用CGI教程form = cgi.FieldStorage()
fileitem = form["myfile"]
if fileitem.file:
linecount = 0
while 1:
line = fileitem.file.readline()
if not line: break
linecount = linecount + 1
但我得到了关键错误。
KeyError: 'myfile'
似乎根本没有通过。如果我检查调试器:
>>> form
FieldStorage(None, None, [])
这些对我来说都没有任何意义。我以前从未上传文件。如果需要的话,我确实有一台可以保存的服务器,但如果我能读取它并临时保存数据,那将是理想的。
您认为我可能正在使用Firefox和Linux吗?
答案 0 :(得分:1)
问题在于我使用的是Pylons,所以几乎忽略了CGI。
所以相反我本应该使用:
request.POST['myfile'].value
答案 1 :(得分:0)
你得到错误意味着上传工作 - 排序:你的CGI脚本被调用,但参数有问题。调试此步骤的步骤:
将form.keys()
打印到sys.stdout
。这应该给你一个键列表,以便你可以检查拼写错误。
检查cgi
模块的版本。文档说
并且最新添加支持从表单上传文件
(我的重点)。也许你的版本太旧了。