2012-01-30 6 views
5

Ho un file di testo con nomi utente e password. Il file di testo è formattato in questo modo:Nome utente grab: password dal file di testo, quindi post nel modulo di login

username1:password1 
username2:password2 
username3:password3 

voglio afferrare la prima linea, divisi in "username1" e "password1", e poi inviare a questo:

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

Dopo di che, Voglio che ripeta e passare a username2: password2.

Come si può fare?

+8

Sembra ... abbozzato. – Amber

+0

Che cos'è br.form? è un dittico? –

+0

Chiedo scusa a Borealid, ho provato un sacco di codice diverso senza fortuna. E il br.form è da meccanizzare. :) – Shtoops

risposta

8

Assumendo no : caratteri nei nomi utente o nelle password.

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

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

Funziona perfettamente. Grazie mille! Non capisco come funzioni la stringa delle credenziali, ma mi assicurerò di ricercarla in modo da non doverlo più chiedere. ;) – Shtoops

+0

@Shtoops: 'credentials' non è una stringa, è una' lista' composta da due elementi: prima è la parte della riga precedente a "': '" e la seconda è la parte della riga successiva. – Tadeck

+2

In realtà è una lista di liste, e non sappiamo quanti elementi (dipende dal contenuto di '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() 
Problemi correlati