繁体   English   中英

从python中的.csv文件返回某种类型的所有电子邮件地址

[英]returning all email addresses of a certain type from a .csv file in python

我整个上午都在用python编写这段代码,但我无法获得它来返回想要的结果。 我有一个.csv文件,其中包含一些模拟客户信息,其中包括电子邮件地址。 我想返回.edu的电子邮件地址列表

这就是我所拥有的(我是Python新手,实际上是在尝试学习Kotlin,而不是python)。此外,也许有比使用regex更好的方法,但是Im试图通过这种方式来实现。 如果有更好的方法,我愿意就什么以及为什么提出建议。

import csv
import re

data = []

with open('customerdata.csv') as f:
  reader = csv.reader(f, delimiter=',')
  for row in reader:
    data.append(row[7])
str1 = ' '.join(data)

edupattern = r'\b(.edu)'

regex = re.compile(edupattern, re.IGNORECASE)
for match in regex.findall(str1):
    print(match)

问题在于,它仅打印.edu,但是它多次出现在.csv文件中。 为什么我无法打印出整个电子邮件地址?

尝试这个:

import csv
import re

data = []

with open('customerdata.csv') as f:
    reader = csv.reader(f, delimiter=',')
    for row in reader:
        if re.search(r'\.edu\b', row[7]): # you could also use row[7].endswith('.edu')
            data.append(row[7])

print(' '.join(data))

我认为您的正则表达式应为:

= r"\b(\S+\.edu)"

使用捕获组时,只能获取捕获(即.edu部分)。 您还应该在捕获中包括所有非S节奏字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM