Python-如何搜索文本文件,查找特定信息?

时间:2015-11-10 20:12:39

标签: python

我想编写代码,找到文件中以“From”开头的每一行,并提取位于空格和“@”符号之间的电子邮件地址部分。

text = open('mBox.txt')

for line in text:
    if line.startswith('From') :
        print line

这是我到目前为止所拥有的。不知道如何让它提取我想要的特定部分。这是for python 2.7

3 个答案:

答案 0 :(得分:1)

使用正则表达式:

for line in text:
    if line.startswith("From"):
        match = re.search(r"(\S+)@", line)
        if match:
            print match.group(1)

\S匹配任何不是空格的字符。由于\S+会尽可能匹配,因此无需提及前面的空格。

答案 1 :(得分:0)

print line.split("From",1)[-1].split("@").strip()

应该做你想要的......至少是一种方式

您也可以使用正则表达式

matches = []
matcher=lambda m:matches.append(m.groups(1)) or ""
re.sub("^From\s+(\w+)@.*",text.read())
print matches

答案 2 :(得分:0)

你可以这样做

text = open('mBox.txt')
for line in text:
    if line.split(' ', 1)[0] == 'From':
        .....
相关问题