python - 使用Python从PDF转换后如何从CSV文件中提取表格内容?
问题描述
我有一个包含许多表格的 PDF。)我将此 PDF 在线转换为 CSV,以便更轻松地提取所需的数据。)
CSV 行由许多列组成,但每个表只包含 3 列,因此很难知道哪一列指的是一个单元格。
我还应该提到,一个单元格可以由不止一行和一列组成。 一个表的例子。
那么有没有办法提取这些细胞呢?
import csv
import re
class PDF_EXTRACTOR:
FILE_NAME=None
Ttableau=None
NUMBER_OF_PAGES=None
def __init__(self,fn):
self.FILE_NAME=fn
self.Ttableau=0
self.NUMBER_OF_PAGES=0
def EXTRACT_CELLULE(self):
csv.register_dialect('mydialect',delimiter =',',skipinitialspace=True)
print(csv.list_dialects())
with open(self.FILE_NAME,'r',encoding='utf8',errors='ignore') as csvFile:
reader = csv.reader(csvFile, dialect='mydialect')
for index, row in enumerate(reader):
print(row)
我期望这样的输出:
["Region 1","Region 2", "Region3]
["8,3-9","AUXILIAIRES DE LA MÉTÉOROLOGIE 5.54A 5.54B 5.54C",""]
["70-72","70-90","70-72"]
["RADIONAVIGATION 5.60","FIXE","MARITIME 5.60"]
但相反,我得到了这个:
['7 450-8 100', 'FIXE', '', '', '', '']
['', 'MOBILE sauf mobile aéronautique (R)', '', '', '', '']
['', '5.144', '', '', '', '']
['8 100-8 195', 'FIXE', '', '', '', '']
['', 'MOBILE MARITIME', '', '', '', '']
['8 195-8 815', 'MOBILE MARITIME', '5.109', '5.11', '5.132', '5.145']
['', '5.111', '', '', '', '']
['8 815-8 965', 'MOBILE AÉRONAUTIQUE (R)', '', '', '', '']
['8 965-9 040', 'MOBILE AÉRONAUTIQUE (OR)', '', '', '', '']
['9 040-9 305', '9 040-9 400', '', '', '', '9 040-9 305']
['FIXE', 'FIXE', '', '', '', 'FIXE']
['9 305-9 355', '', '', '', '', '9 305-9 355']
['FIXE', '', '', '', '', 'FIXE']
['Radiolocalisation 5.145A', '', '', '', '', 'Radiolocalisation 5.145A']
['5.145B', '', '', '', '', '']
['9 355-9 400', '', '', '', '', '9 355-9 400']
解决方案
推荐阅读
- flutter - Scrollable column in flutter
- windows - 启动 Pageant SSH-Agent 并加载文件夹中的所有密钥
- javascript - 以角度声明具有自定义数据范围的数组
- mxgraph - 如何使用 mxGraph 将一条边分成两条?
- c - 蛇和梯子:可视化和更新玩家位置
- mysql - 如何在 Sequelize 和 Mysql 中编写此查询
- android - 每次向服务器(android)发送报告时如何获取当前日期?
- javascript - Firebase auth.currentUser 在加载页面时为空,在页面加载几毫秒后调用 authstatechange 时加载用户
- php - 使用 PHP 和 SQL 在复选框上提交多个值
- symfony - Symfony onKernelRequest headers->set don't received on @Route