2009-08-19 26 views
8

Cuando ejecuto el script siguiente:de carga de archivos con Python Mechanize

from mechanize import Browser 
br = Browser() 
br.open(url) 
br.select_form(name="edit_form") 
br['file'] = 'file.txt' 
br.submit() 

me sale: ValueError: atributo de valor es de sólo lectura

Y sigo teniendo el mismo error cuando agrego:

br.form.set_all_readonly(False) 

Entonces, ¿cómo puedo usar Python Mechanize para interactuar con un formulario HTML para cargar un archivo?

Richard

+0

esto puede ser estúpido, pero sí existe la archivo.txt en el directorio de trabajo de su guión? – Geo

+0

yep (límite de 15 caracteres) – hoju

Respuesta

13

Esta es la forma de hacerlo correctamente con Mechanize:

br.form.add_file(open(filename), 'text/plain', filename) 
2

twill está construido sobre mechanize y hace de scripting web forma una brisa. Ver python-www-macro.

>>> from twill import commands 
>>> print commands.formfile.__doc__ 

>> formfile <form> <field> <filename> [ <content_type> ] 

Upload a file via an "upload file" form field. 

>>> 
Cuestiones relacionadas