2012-01-30 18 views
5

Tengo un archivo de texto con nombres de usuario y contraseñas. El archivo de texto tiene el formato siguiente manera:Tomar nombre de usuario: contraseña del archivo de texto, luego publicar en el formulario de inicio de sesión

username1:password1 
username2:password2 
username3:password3 

Quiero agarrar la primera línea, se dividieron en "usuario1" y "contraseña1" y, a continuación, colocar a esto:

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

Después de eso, Quiero que se repita y pasar a username2: password2.

¿Cómo se puede hacer esto?

+8

Eso suena ... incompleto. – Amber

+0

¿Qué es br.form? ¿es un dict? –

+0

Pido disculpas a Borealid, he probado muchos códigos diferentes sin suerte. Y el br.form es de mecanize. :) – Shtoops

Respuesta

8

Suponiendo que no hay : caracteres en sus nombres de usuario o contraseñas.

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

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

Esto funciona perfectamente. Muchas gracias! No entiendo muy bien cómo funciona la cadena de credenciales, pero me aseguraré de investigarla para no tener que volver a preguntar. ;) – Shtoops

+0

@Shtoops: 'credentials' no es una cadena, es una' lista' que consta de dos elementos: el primero es la parte de la línea anterior a '': ''' y el segundo es la parte de la línea posterior. – Tadeck

+2

En realidad es una lista de listas, y no sabemos cuántos elementos (depende del contenido 'miarchivo.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() 
Cuestiones relacionadas