2012-01-30 30 views
5

Tôi có tệp văn bản có tên người dùng và mật khẩu. Các tập tin văn bản được định dạng như thế này:Lấy tên người dùng: mật khẩu từ tệp văn bản, sau đó đăng nhập vào biểu mẫu đăng nhập

username1:password1 
username2:password2 
username3:password3 

Tôi muốn lấy dòng đầu tiên, chia nó thành "USERNAME1" và "password1", và sau đó gửi tới này:

br.form['login'] = 'username1' 
br.form['passwd'] = 'password1' 

Sau đó, Tôi muốn nó lặp lại và chuyển sang username2: password2.

Làm cách nào để thực hiện điều này?

+8

Nghe có vẻ ... sơ sài. – Amber

+0

br.form là gì? nó là một dict? –

+0

Tôi xin lỗi Borealid, tôi đã thử rất nhiều mã khác nhau mà không có may mắn. Và br.form là từ cơ giới hóa. :) – Shtoops

Trả lời

8

Giả sử không có : ký tự trong tên người dùng hoặc mật khẩu của bạn.

with open('myfile.txt') as f: 
    credentials = [x.strip().split(':') for x in f.readlines()] 

for username,password in credentials: 
    # your code here 
+0

Công cụ này hoàn hảo. Cảm ơn bạn rất nhiều! Tôi không hoàn toàn hiểu cách chuỗi thông tin hoạt động, nhưng tôi sẽ đảm bảo nghiên cứu nó để tôi không phải hỏi lại. ;) – Shtoops

+0

@Shtoops: 'credentials' không phải là một chuỗi, nó là một' danh sách' bao gồm hai phần tử: đầu tiên là một phần của dòng trước "": '" và thứ hai là một phần của dòng sau nó. – Tadeck

+2

Thực ra đây là danh sách các danh sách và chúng tôi không biết có bao nhiêu phần tử (phụ thuộc vào nội dung 'myfile.txt'). – wim

2
filename=<path to file> 
separator=":" 
fileIN = open(filename, "r") 
line = fileIN.readline() 

while line: 
    sout=line.split(separator) 
    user=sout[0] 
    passwd=sout[1] 
    ..... do your stuff...... 
    line = fileIN.readline() 
0

Đây là một usecase hoàn hảo của requests, các yêu cầu đã được xây dựng trong authentication.

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