# save them in a folder
folder_name = "tables"
if not os.path.isdir(folder_name):
os.mkdir(folder_name)
# iterate over extracted tables and export as excel individually
for i, table in enumerate(tables, start=1):
table.to_excel(os.path.join(folder_name, f"table_{i}.xlsx"), index=False)
这将创建tables文件夹并将所有检测到的 Excel 格式的表格放入该文件夹中,尝试一下。
现在,如果你想从 PDF 文件中提取所有表格并将它们转储到单个CSV文件中怎么办?下面的代码正是这样做的:
# convert all tables of a PDF file into a single CSV file
# supported output_formats are "csv", "json" or "tsv"
tabula.convert_into("1710.05006.pdf", "output.csv", output_format="csv", pages="all")
Python从PDF中提取表格示例:如果你有多个 PDF 文件,并且想对所有这些文件运行上述内容,则可以使用convert_into_by_batch()方法:
# convert all PDFs in a folder into CSV format
# `pdfs` folder should exist in the current directory
tabula.convert_into_by_batch("pdfs", output_format="csv", pages="all")
这将查看pdfs文件夹并为该文件夹中的每个 PDF 文件输出一个 CSV 文件。
结论
Python如何从PDF中提取表格?对于大文件,camelot库的性能往往优于tabula-py。但是,有时你会遇到NotImplementedError使用camelot库的某些 PDF 文件,你可以使用tabula-py作为替代。请注意,这不会将图像字符转换为数字文本,如果你愿意,可以使用 OCR 技术将图像光学字符转换为可以在 Python 中操作的实际文本,以下教程可以为你提供很大帮助: