尝试从读取的文件中提取特定行,并使其成为返回的可用变量。
有关文件中数据的一些信息。语法如下。
A line of text I do not need
New domain: www.example.com
Another line that I do not need
New domain: www.example2.com
Ect...
它读取文件,我已经尝试了示例正则表达式模式的许多变体,并且知道我已经关闭了。除此之外,这非常简单。
data = []
with open('test.txt', 'r') as file:
data = (re.findall(r"(?<=New domain:).+$",open('test.txt'), re.M))
return data
快乐之路: 该函数从test.txt文件读取,仅查看以New domain开头的行:并且仅将url一直行到行尾并将其放入列表中。
错误: 它只是告诉我模式语法是错误的。
答案 0 :(得分:2)
您的正则表达式模式很好,但是您不能将文件对象传递给findall
。尝试以下方法:
data = (re.findall(r"(?<=New domain:).+$", file.read(), re.M))
答案 1 :(得分:1)
您需要先阅读文件,然后再将其传递给re.findall()
方法。您也可以简单地使用正则表达式。
def find_domains():
with open('test.txt', 'r+') as file:
file_text = file.read()
data = re.findall("New domain: (.*)", file_text)
return data