首页 > 解决方案 > 在文件中搜索单词并取整行

问题描述

我运行这个程序基本上是为了获取我输入的网站的页面源代码。它将它保存到一个文件中,我想要的是它寻找一个特定的字符串,它基本上是电子邮件的@。但是,我无法让它工作。

import requests
import re

url = 'https://www.youtube.com/watch?v=GdKEdN66jUc&app=desktop'
data = requests.get(url)

# dump resulting text to file
with open("data6.txt", "w") as out_f:
    out_f.write(data.text)

with open("data6.txt", "r") as f:
    searchlines = f.readlines()
for i, line in enumerate(searchlines):
    if "@" in line:
        for l in searchlines[i:i+3]: print((l))

标签: pythonpython-3.x

解决方案


您可以使用 regex 方法findall查找文本内容中的所有电子邮件地址,并file.read()使用file.readlines(). 将所有内容放在一起而不是分成单独的行。

例如:

import re

with open("data6.txt", "r") as file:
    content = file.read()

emails = re.findall(r"[\w\.]+@[\w\.]+", content)

之后可能会强制转换为唯一性,然后根据需要保存到文件中。


推荐阅读