开发者

Python TypeError: Required argument 'source' (pos 1) not found

开发者 https://www.devze.com 2023-03-15 16:50 出处:网络
I get an error: TypeError: Required argument \'source\' (pos 1) not found but I haven\'t got a clue what it means :/. Can anyone put me on the right track?

I get an error: TypeError: Required argument 'source' (pos 1) not found but I haven't got a clue what it means :/. Can anyone put me on the right track? My code is:

    def openFile(self,fileName):

    email_pattern = re.compile(r'\b[A-Z0-9._%+-]+@[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()

Basical开发者_StackOverflowly it opens a number files in a directory, reads them and then goes looking for email addresses and writes them to a database.


email_pattern.findall() requires an argument to be passed. So your code should be this -

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

Note that email_pattern.findall() returns a list, so what you will be making will be list of list in the end. If you are sure that every line contains at the most 1 email_address then you can use -

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

精彩评论

暂无评论...
验证码 换一张
取 消