Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 获取所有用户';在.aiml文件中输入(<;pattern>;input<;/pattern>;),并将其附加到列表中_Python_Flask_Aiml - Fatal编程技术网

Python 获取所有用户';在.aiml文件中输入(<;pattern>;input<;/pattern>;),并将其附加到列表中

Python 获取所有用户';在.aiml文件中输入(<;pattern>;input<;/pattern>;),并将其附加到列表中,python,flask,aiml,Python,Flask,Aiml,目前,我的任务是获取.aiml文件中的所有用户输入,并使用Python3将其添加到列表中。代码如下: 主题。aiml <?xml version = "1.0" encoding = "UTF-8"?> <aiml version = "1.0.1" encoding = "UTF-8"?> <category> <pattern>HELLO ALICE</pattern> <template>

目前,我的任务是获取.aiml文件中的所有用户输入,并使用Python3将其添加到列表中。代码如下:

主题。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>
返回值为:你好,ALICE你好,你从哪里来,你在做什么?,这是正确的。但我不知道如何将其附加到数据集

我对团队交给我的这类任务还不熟悉。非常感谢如果有人知道如何操纵这个。谢谢

下面是结果


如果你真正想要的输出是
你好,爱丽丝,你从哪里来,你在做什么,你的结果会误导你

我将把你问题中一些模棱两可的信息和我对它的解释结合起来

您当前所做的只是获取文件、删除换行符并返回所有其他内容

我运行这个程序

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()
这就是它在浏览器中的外观

相反,您需要做的是解析文本并找到
模式
标记中的内容。为此,我建议使用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()

你好我不确定你所说的“附加到数据集”到底是什么意思,但听起来你所需要的只是
数据集。在返回语句之前附加(数据)
。@Stael我想这样做:数据集=['HELLO ALICE','HOW you','what you DOING','what you FROM']你是男子汉!这实际上是我需要的结果集。谢谢非常感谢您的帮助。如果我想在标记中排除标记,该怎么办。例如:我的狗的名字是*,有趣的是,你有一只狗被命名为。如果标记有NAME属性,那么在结果集中不应该包含这些标记
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()