2011-06-26 12 views
8

Viene visualizzato un messaggio di errore: TypeError: Required argument 'source' (pos 1) not found ma non ho idea di cosa significhi: /. Qualcuno può mettermi sulla strada giusta? Il mio codice è:Python TypeError: argomento obbligatorio 'source' (pos 1) non trovato

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() 

Fondamentalmente si apre un file di numero in una directory, li legge e poi va alla ricerca di indirizzi e-mail e li scrive in un database.

risposta

10

email_pattern.findall() richiede un argomento da passare. Quindi, il codice dovrebbe essere questo -

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

notare che email_pattern.findall() restituisce una lista, così che cosa si farà sarà elenco di lista alla fine. Se sei sicuro che ogni riga contenga al massimo 1 indirizzo email, puoi utilizzare -

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