2009-08-19 3 views
8

Wenn ich das folgende Skript ausführen:Upload-Datei mit Python Mechanize

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

ich: Valueerror: value-Attribut ist nur lesbar

Und ich immer noch die gleichen Fehler, wenn ich hinzufügen:

br.form.set_all_readonly(False) 

Also, wie kann ich Python Mechanize verwenden, um mit einem HTML-Formular zu interagieren, um eine Datei zu laden?

Richard

+0

dies dumm sein kann, aber nicht die datei.txt existieren in Ihrem Skript Arbeitsverzeichnis? – Geo

+0

yep (15 Zeichen Grenze) – hoju

Antwort

13

Dies ist, wie es mit Mechanize richtig zu machen:

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

twill auf mechanize gebaut und macht Scripting Bahn eine Brise bildet. Siehe 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. 

>>>