2011-06-26 2 views
8

Я получаю сообщение об ошибке: TypeError: Required argument 'source' (pos 1) not found , но у меня нет ни малейшего понятия, что это значит: /. Может ли кто-нибудь поставить меня на правильный путь? Мой код:Python TypeError: Требуемый аргумент 'source' (pos 1) не найден

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

В основном это открывает целый ряд файлов в директории, читает их, а затем отправляется на поиски адреса электронной почты и записывает их в базу данных.

ответ

10

email_pattern.findall() требует передачи аргумента. Так что ваш код должен быть таким -

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

Обратите внимание, что email_pattern.findall() возвращает список, так что вы будете делать будет список список в конце. Если вы уверены, что каждая строка содержит не более 1 email_address, вы можете использовать -

with open(fileName) as lijstEmails: 
    self.FinalMailsArray.append([email_pattern.findall(line)[0] for line in lijstEmails]) 
Смежные вопросы