如何拆分列表

How to split a list

我有一个文本文件,输入是:

在下面,我将每一行读入列表,同时剥离 \n:

with open(file) as f:
    return [email.strip() for email in f]

打印列表后的输出:[abcdefg@hi, jklmnop@qr]

但是 我只想得到 @ 之前的部分,比如 abcdefg。我需要使用 split('@') 然后得到 [0]。但是我需要在上面的 with-open-code 中的哪一行拆分它?

另一个问题:表达式[email.strip() for email in f]有没有具体的名字?

with open(file) as f:
   array = []
   for email in f:
       email = email.strip() 
       array.append(email.split('@')[0])
       
   return array

我建议在这里使用 re.findall

with open(file) as f:
    data = f.read()
    emails = re.findall(r'(\S+)@\S+', data)