在Python上载和读取csv文件

时间:2011-11-23 17:04:50

标签: python html forms csv upload

我有一个程序可以从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吗?

2 个答案:

答案 0 :(得分:1)

问题在于我使用的是Pylons,所以几乎忽略了CGI。

所以相反我本应该使用:

request.POST['myfile'].value

答案 1 :(得分:0)

你得到错误意味着上传工作 - 排序:你的CGI脚本被调用,但参数有问题。调试此步骤的步骤:

  1. form.keys()打印到sys.stdout。这应该给你一个键列表,以便你可以检查拼写错误。

  2. 检查cgi模块的版本。文档说

      

    并且最新添加支持从表单上传文件

  3. (我的重点)。也许你的版本太旧了。

相关问题