当前,我的任务是在.aiml文件中获取所有用户输入,并使用Python3将其附加到列表中。下面是代码:
topic.aiml
<?xml version = "1.0" encoding = "UTF-8"?>
<aiml version = "1.0.1" encoding = "UTF-8"?>
<category>
<pattern>HELLO ALICE</pattern>
<template>
Hello User
</template>
</category>
<category>
<pattern>HOW ARE YOU</pattern>
<template>
I'm fine
</template>
</category>
<category>
<pattern>WHAT ARE YOU DOING</pattern>
<template>
Coding
</template>
</category>
<category>
<pattern>WHERE YOU FROM</pattern>
<template>
Manila
</template>
</category>
</aiml>
test.py
@extract.route('/')
def index_page():
folder = 'templates/topic.aiml'
data_set = []
with open(folder, 'r') as myfile:
data = myfile.read().replace('\n', '')
return data
返回值为:您好,您在做什么吗,这是正确的。但是我不知道如何将其附加到 data_set
我刚接触团队给我的这种任务。如果有人知道如何操作此功能,将不胜感激。谢谢!
下面是结果。
答案 0 :(得分:1)
如果您真正想要的输出是HELLO ALICE HOW ARE YOU WHAT ARE YOU DOING WHERE YOU FROM
,那么您的结果就是 误导 。
我将对您的问题中的一些模棱两可的信息进行解释。
您当前正在做的只是获取文件,删除换行符并返回其他所有内容。
我运行了这个程序;
from flask import Flask
extract = Flask(__name__)
@extract.route('/')
def index_page():
folder = 'templates/topic.aiml'
data_set = []
with open(folder, 'r') as myfile:
data = myfile.read().replace('\n', '')
return data
extract.run()
这就是它在浏览器中的外观;
您需要做的是解析文本并找到pattern
标记内的内容。为此,我建议使用BeautifulSoup;
from flask import Flask
from bs4 import BeautifulSoup
extract = Flask(__name__)
@extract.route('/')
def index_page():
folder = 'templates/topic.aiml'
with open(folder, 'r') as myfile:
soup = BeautifulSoup(myfile.read(), 'html.parser')
data_set = [match.text for match in soup.find_all("pattern")]
data = " ".join(data_set)
return data
extract.run()