2009-08-19 38 views
8

Khi tôi chạy kịch bản sau đây:upload file với Python mechanize

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

tôi nhận được: ValueError: attribute giá trị là readonly

Và tôi vẫn nhận được lỗi tương tự khi tôi thêm:

br.form.set_all_readonly(False) 

Vì vậy, làm cách nào tôi có thể sử dụng Python Mechanize để tương tác với biểu mẫu HTML để tải lên tệp?

Richard

+0

này có thể là ngu ngốc, nhưng nào file.txt tồn tại trong thư mục làm việc tập lệnh của bạn? – Geo

+0

yep (giới hạn 15 ký tự) – hoju

Trả lời

13

Đây là cách để làm điều đó đúng với mechanize:

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

twill được xây dựng trên mechanize và làm cho kịch bản web tạo thành một làn gió. Xem 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. 

>>> 
Các vấn đề liên quan