2011-06-26 10 views
8

Otrzymuję błąd: TypeError: Required argument 'source' (pos 1) not found , ale nie mam pojęcia, co to znaczy: /. Czy ktoś może umieścić mnie na właściwej drodze? Mój kod to:Python TypeError: Wymagany argument "source" (pos 1) nie został znaleziony

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

Zasadniczo otwiera pliki numer w katalogu, czyta je, a następnie idzie szuka adresów e-mail i zapisuje je do bazy danych.

Odpowiedz

10

email_pattern.findall() wymaga podania argumentu. Więc kod powinien być ten -

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

pamiętać, że email_pattern.findall() zwraca listę, więc co robisz będzie lista listy w końcu. Jeśli masz pewność, że każdy wiersz zawiera co najwyżej 1 adres e-mail, możesz użyć -

with open(fileName) as lijstEmails: 
    self.FinalMailsArray.append([email_pattern.findall(line)[0] for line in lijstEmails]) 
Powiązane problemy