2011-06-26 8 views
8

Me sale un error: TypeError: Required argument 'source' (pos 1) not found pero no tengo ni idea de lo que significa: /. ¿Alguien puede ponerme en el camino correcto? Mi código es:Python TypeError: argumento requerido 'fuente' (pos 1) no encontrado

def openFile(self,fileName): 

    email_pattern = re.compile(r'\b[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}\b', re.IGNORECASE) 

    with open(fileName) as lijstEmails: 
     self.FinalMailsArray.append([email_pattern.findall() for line in lijstEmails]) 
    self.writeToDB() 

Básicamente se abre un número de archivos en un directorio, los lee y luego va en busca de direcciones de correo electrónico y los escribe en una base de datos.

Respuesta

10

email_pattern.findall() requiere que se pase un argumento. Así que el código debe ser esto -

with open(fileName) as lijstEmails: 
    self.FinalMailsArray.append([email_pattern.findall(line) for line in lijstEmails]) 

en cuenta que email_pattern.findall() devuelve una lista, así que lo que se van a realizar será la lista de la lista al final. Si está seguro de que cada línea contiene como máximo 1 dirección_de_email, puede usar -

with open(fileName) as lijstEmails: 
    self.FinalMailsArray.append([email_pattern.findall(line)[0] for line in lijstEmails]) 
Cuestiones relacionadas