【发布时间】:2022-01-25 09:14:05
【问题描述】:
我一直在尝试使用 python-docx 从 word 文件中提取文本
为了得到这个文本,我这样做了:
from docx import Document
doc = Document(filename)
rawdata = []
for par in doc.paragraphs:
rawdata.append(par.text)
print(rawdata)
但是,这会返回如下内容:
['What is machine learning?', 'Machine learning is a branch of\xa0\xa0and computer science which focuses on the use of data and algorithms to imitate the way that humans learn, gradually improving its accuracy.'...
在这里,文本“人工智能 (AI)”变成了 '\xa0\xa0',这是我不想要的。
我还是 python 的新手,尝试进行一些挖掘,发现 \xa0 是一个不间断的空间......(这与链接有什么关系?)
所以问题:如何使用 python-docx 获取包含超链接的原始文本?
(编辑:我不是要从字符串中删除 '\xa0',我需要的是原始文本)
最初的目标: 通过python取消word文件中的所有链接,但仍保持文本完整。
非常感谢任何帮助,谢谢!
【问题讨论】:
-
@scanny 我确实尝试过事先查找,并找到了一种收集所有超链接的方法,并且成功了。但是,在我的终端上打印时带有该精确超链接的文本返回“\xa0\xa0”,这主要是这里的问题..
-
我没有得到你的问题。
python-docx不支持在paragraph.text中包含超链接文本的 API。如果你找到了一种方法来做到这一点,那就太好了。\xa0是一个可以出现在文本中的合法字符,我希望它恰好出现在这表明的位置,“人工”之前的空格和“(AI)”之后的空格都是不间断的空格。如果您不喜欢那样,请将它们更改为其他内容。如果你澄清你的问题,我会看看我是否能提供帮助,但我不明白你在问什么。
标签: python python-docx