我正在使用Python的
fitz
/pymupdf
和pdf2docx
包从pdf文件中读取表格,以便我可以从中获取数据并对其进行适当的建模以存储在数据湖中。
pdf2docx 中的 Converter 类似乎具有非常可靠的配置,可以让它获取所有表格并非常干净地读取它们。 一个问题是,有时它会替换我认为它认为是带有 string 的嵌套表的内容。 我在上面发现了这个 issue,并通过编辑 pdf2docx 表目录中
Cell
文件中的 Cell.py
类,成功在本地计算机中复制了修复程序。 但是,我希望能够在 GCP 的云函数中使用它,而无需将源代码作为直接文件加载到云函数中。 有没有办法通过我的requirements.txt文件安装pdf2docx,然后在我的代码本身中重新定义方法Cell.text
?
显然,人们可以在自己的脚本/子模块中对类进行猴子修补。我只是在文件顶部执行了此操作,我知道最终将调用 Cell.text 方法/属性:
def text(self):
'''Text contained in this cell.'''
if not self: return None
# NOTE: sub-table may exists in
text = []
for block in self.blocks:
if block.is_text_block:
text.append(block.text)
elif block.__class__.__name__ == "TableBlock":
text.append(''.join(numpy.array(block.text).flatten()))
else:
text.append("<NESTED TABLE>")
return '\n'.join(text)
Cell.text = property(text)