【问题标题】:Search a list fine text in between <TEXT> and </TEXT>搜索列表查找 <TEXT> 和 </TEXT> 之间的文本
【发布时间】:2022-06-18 18:45:10
【问题描述】:

这是一个已处理的 html 文件,位于 python 列表变量中。它也有一些换行符 - 所以文本是多行的。该列表未标记化。 侧尖括号(html标签)中有多组“TEXT”和“/TEXT”。 我想提取这些匹配对之间的文本并将它们附加到另一个列表中。在这里感谢专家的帮助。

with gzip.open(.....)
    texty = []
    for i, line in enumerate(opened_file): #reading file
      texty.append(line.strip(' \t\n\r')

看完后可以加入如下:

lines.append(' '.join(line))

变量 texty/lines 重复了多次 &lt;TEXT&gt;&lt;/TEXT&gt;。我需要处理这个文本或行并提取内容并附加到另一个变量(例如上面代码中的行)。最终,这个新内容将被写入标题“ContentK”下的两列或三列的 CSV 文件 -

更新: 美丽的汤失败了,因为它不是字节对象而是列表。 这会解决吗:

with gzip.open(.....)
  texty = ''
  for i, line in enumerate(opened_file): #reading file
    texty.join(line.strip(' \t\n\r')

【问题讨论】:

  • 您能否编辑您的问题并将示例(小)输入和预期输出放在那里?

标签: python-3.x list search


【解决方案1】:

要解析此文本,我建议使用 HTML 解析器,例如 beautifulsoup。例如:

from bs4 import BeautifulSoup


txt = """
This text I don't want
XXX <TEXT> I want
this text </TEXT> YYY
ZZZ <text> and this too </text>"""

soup = BeautifulSoup(txt, "html.parser")

out = [t.text for t in soup.find_all("text")]
print(out)

打印:

[' I want\nthis text ', ' and this too ']

【讨论】:

  • 美汤失败了,因为它不是字节对象而是列表。
  • @user4504270 将文件读入字符串,并将该字符串放入BeautifulSoup
  • 这个能解决吗? with gzip.open(.....) texty = '' for i, line in enumerate(opened_file): #reading file texty.ajoin(line.strip('\t\n\r')
  • 对不起,上面的格式丢失了。所以我在我的 OP 中更新了。
  • 我收到了几个 '', '', - 想清理它吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-28
  • 2015-04-15
  • 2020-07-15
相关资源
最近更新 更多