Этот запрос отправляет содержимое файла в поле загрузки файла.Тело http запроса POST, загружающего файл, сложно собрать - для обычных текстовых полей можно просто отправить словарь в параметре «data =» вызову urllib2.urlopen, и поля будут опубликованы.
Для загрузки файлов необходимо отправить сложное тело http с настроенными заголовками.Я не знаю, может ли urllib2 сделать это - но я нашел пример того, как сделать это, используя httplib и mimetypes (оба являются частью stdlib Python) - так что вы можете выбрать пример кода и повторно использовать его в своем проекте:
http://code.activestate.com/recipes/146306-http-client-to-post-using-multipartform-data/