【发布时间】:2017-09-07 02:27:54
【问题描述】:
python 新手并坚持这一点!
我有一个大文本文件,其中仅包含来自不同域的电子邮件。假设我只想提取 gmail 和 hotmail。
我能够做到这一点,但结果却混在一起了。
filename = input('Enter filename to open: ')
try:
filename = open(filename)
except:
print('File cannot be opened: ', filename)
exit()
import re
for line in filename:
line = line.rstrip()
x = re.findall('\S+@gmail.com', line)
if len(x) > 0:
print(x)
y = re.findall('\S+@hotmail.com', line)
if len(y) > 0:
print(y)
我的目标是让它打印出所有的 gmail 电子邮件,然后列出它找到的 gmail 电子邮件地址的数量。然后我希望它列出所有的 hotmail 帐户并列出它找到了多少个 hotmail 帐户。有道理?
【问题讨论】:
-
我认为这是因为您正在逐行搜索。这意味着它将打印该行中的 gmail 地址,然后打印该行中的 hotmail 地址,然后转到下一行。而不是打印文件中的所有gmail地址,然后打印文件中的所有hotmail地址。除非那是你想做的。
-
考虑使用模块
mailbox(docs.python.org/3.5/library/mailbox.html) 而不是自己搞乱邮件消息。
标签: python python-3.x email text extract