Загрузка и чтение CSV-файла в Python - PullRequest
1 голос
/ 23 ноября 2011

У меня есть программа, которая читает и сортирует информацию из файла 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>

и я пытался использовать учебник по CGI по адресу docs.python

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 ]

1 голос
/ 09 декабря 2011

Проблема в том, что я использовал Pylons, поэтому он почти игнорировал CGI.

Так что вместо этого я должен был использовать:

request.POST['myfile'].value
0 голосов
/ 24 ноября 2011

То, что вы получили ошибку, означает, что загрузка работает - вроде: ваш CGI-скрипт вызывается, но с параметрами что-то не так Шаги, чтобы отладить это:

  1. Распечатать form.keys() до sys.stdout. Это должно дать вам список ключей, чтобы вы могли проверить на опечатки.

  2. Проверьте версию вашего cgi модуля. В документации написано

    и последнее дополнение - поддержка загрузки файлов из формы

(мой акцент). Возможно, ваша версия слишком старая.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...