python - 如何分别从 docx 和纯文本中获取表格数据?
问题描述
例如在我的 .docx 文件中,我有:
- 页脚
- 标题
- 表数据
- 纯文本(剩下的)
我怎样才能将所有这些点与文本分开?
我以前使用过这个功能:
try:
from xml.etree.cElementTree import XML
except ImportError:
from xml.etree.ElementTree import XML
import zipfile
WORD_NAMESPACE = '{http://schemas.openxmlformats.org/wordprocessingml/2006/main}'
PARA = WORD_NAMESPACE + 'p'
TEXT = WORD_NAMESPACE + 't'
def get_docx_text(path):
"""
Take the path of a docx file as argument, return the text in unicode.
"""
document = zipfile.ZipFile(path)
contentToRead = ["header2.xml", "document.xml", "footer2.xml"]
paragraphs = []
text, footer, header = [], [], []
for xmlfile in contentToRead:
xml_content = document.read('word/{}'.format(xmlfile))
tree = XML(xml_content)
for paragraph in tree.getiterator(PARA):
texts = [node.text
for node in paragraph.getiterator(TEXT)
if node.text]
if texts:
textData = ''.join(texts)
if xmlfile == "footer2.xml":
footer.append(textData)
elif xmlfile == "header2.xml":
header.append(textData)
else:
text.append(textData)
document.close()
return pd.DataFrame(text, columns=['Text']), pd.DataFrame(footer, columns=['Text']), pd.DataFrame(header,columns=['Text'])
但那部分
else:
text.append(textData)
从页面获取所有数据(表格、纯文本等)。如何单独获取表格数据?(就像页脚和页眉一样)
解决方案
推荐阅读
- algorithm - 如果用户访问 n 次,则计算唯一用户
- netlogo - NetLogo:如何向除了原始单元格之外的单元格上的海龟提问?
- directory - RPM 不负责删除作为 RPM 重定位的一部分创建的目录
- c - 如何在c中将数字排列成蝴蝶结形状
- sql - 自定义 SQL 查询中的重复记录
- r - BlueSky Statistics - String to date [time] 问题
- macos - 以编程方式禁用“摇动以查找指针”MacOS 功能而不隐藏光标
- laravel - Laravel 2 以相同的形式提交按钮
- java - 如何在 macOS 上为 IntelliJ 项目安装 Google OR-Tools
- git - git将未更改的文件添加到“未暂存的文件”中