Python 类型错误:缺少必要参数 'source' (位置 1)

9 投票
1 回答
40277 浏览
提问于 2025-04-16 20:18

我遇到了一个错误:TypeError: Required argument 'source' (pos 1) not found,但是我完全不知道这是什么意思 :/。有没有人能帮我指点一下?我的代码是:

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

简单来说,它会打开一个文件夹里的多个文件,读取这些文件,然后寻找电子邮件地址,并把它们写入数据库。

1 个回答

11

email_pattern.findall() 这个函数需要你传入一个参数。所以你的代码应该是这样 -

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

要注意的是,email_pattern.findall() 会返回一个列表,这样最后你得到的结果会是一个列表的列表。如果你确定每一行最多只包含一个电子邮件地址,那么你可以使用 -

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

撰写回答