2009-08-19 121 views
8

当我运行下面的脚本:上传文件

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

我得到:ValueError异常:值属性为只读,

我仍然得到同样的错误,当我补充一下:

br.form.set_all_readonly(False) 

那么,如何使用Python Mechanize与HTML表单进行交互来上传文件?

理查德

+0

这可能是愚蠢的,但它的file.txt的在你的脚本的工作目录存在吗? – Geo 2009-08-19 18:18:05

+0

是的(15个字符限制) – hoju 2009-08-20 01:32:27

回答

13

这是如何与机械化做正确:

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

twill是建立在mechanize,使脚本网络形成了一个微风。见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. 

>>>