安装python环境
python下载安装在官网上链接: https://www.python.org。安装时勾选环境变量,这样就能直接把环境变量写入系统,下载安装文档参考:Python 3.8详细安装教程_python3.8安装教程-CSDN博客
安装pycharm
pycharm下载安装的官方网址:https://download-cdn.jetbrains.com.cn/python/pycharm-professional-2023.3.4.exe,下载安装文档参考:PyCharm安装教程,图文教程(超详细)-CSDN博客
安装pdfplumber库
python下载pdfplumber库:
方法一:直接安装:确保有pip环境,使用命令 pip install pdfplumber
方法二:使用镜像安装:
清华大学的镜像: pip install -i Simple Index pdfplumber
豆瓣镜像: pip install -i http://pypi.douban.com/simple/ pdfplumber
如果报错You are using pip version 20.2.1; however, version 24.3.1 is available. You should consider upgrading via the ‘d:\软件\python\python环境\python.exe -m pip install --upgrade pip’ command.说明要升级一下才可用pip,然后输入上面的命令重新下载pdfplumber。
在终端输入命令d:\软件\python\python环境\python.exe -m pip install --upgrade pip就可以升级到可以用的版本。
验证pdfplumber库是否可以使用: import pdfplumber不报错则是可以使用
假如pdfplumber报错显示插件不存在不可用的排查点:
1.检查python版本:python --version
2.手动检查文件夹下面是否有对应的文件夹,Python 库会安装在你的 Python 环境的 site-packages
目录下。具体位置取决于你的 Python 安装方式和系统环境。例如,在 Windows 上,如果使用系统安装的 Python,可能在 C:\PythonXX\Lib\site-packages
(其中 XX
是 Python 版本号);在 Linux 和 macOS 上,可能在 /usr/local/lib/pythonXX/site-packages
或 /usr/lib/pythonXX/site-packages
(同样,XX
是 Python 版本号)。
3.检查电脑里是否安装了多个python版本,可能是版本冲突,手动卸载版本,如果卸载过程中显示仍有程序在运行,可能是[python项目]在pycharm关闭后没有完全关闭,出错的程序无法进行到驱动关闭,所以驱动在进程中,文件也在调用,这时移动或者删除文件无法操作,需要在任务管理器中的性能中打开资源监视器,然后CPU搜索关联句柄,结束相关进程,这时就可以正常操作文件了。
4.检查环境变量是否配置齐全:
-
针对Path” 变量,点击 “编辑”。
-
在弹出的 “编辑环境变量” 窗口中,可以添加、删除或修改路径。如果要添加 Python 的路径,点击 “新建”,然后输入 Python 的安装路径(例如,C:\PythonXX,其中 XX 是 Python 版本号)和 \Scripts 路径(例如,C:\PythonXX\Scripts)。
5.检查pycharm中的选择的编译器是否可用。
pdfplumber库的使用
pdfplumber库可迅速将pdf文档转换为易于处理的txt文档,并输出pdf文档的字符、页面、页码等信息,还可进行页面可视化操作。pdfplumber库提供了两种pdf表格提取函数,分别为.extract_tables( )及.extract_table( )。
(1).extract_tables( )
可输出页面中所有表格,并返回一个嵌套列表,通常体现为三维数组的形式,其结构层次为table→row→cell。此时,页面上的整个表格被放入一个大列表中,原表格中的各行组成该大列表中的各个子列表。若需输出单个外层列表元素,得到的便是由原表格同一行元素构成的列表。如果想要输出某个单元格的数据:通常体现为三维数组的形式,例如:
import pdfplumber
with pdfplumber.open(filepath) as pdf:
# 读取pdf的页数
len_tablepdfs=len(pdf.pages)
# 设置操作第一页pdf
page = pdf.pages[0]
table_info = page.extract_tables()
# 输出为三维数组的形式[[[]]],x是最外层表格,y是表格里的行数,z是单元格所在的行标
print(table_info)
# 获取第一个表的行数
len_table_info_0 = len(table_info[0])
# 获取第一个表的数据
table_info_1 = table_info[0]
# 获取第一个表中第一行的数据
table_info_11 = table_info[0][0]
# 获取第一个表中第一行中第一个单元格的数据
table_info_111 = table_info[0][0][0]
# for循环输出第一个表中的每一行数据
for index, value in enumerate(table_info[1]):
print(value)
(2).extract_table( )
只能输出页面中一个表格,返回多个独立列表,通常体现为二维数组的形式,其结构层次为row→cell。若页面中存在多个行数相同的表格,则默认输出顶部表格;否则,仅输出行数最多的一个表格。此时,表格的每一行都作为一个单独的列表,列表中每个元素即为原表格的各个单元格内容。若需输出某个元素,得到的便是具体的数值或字符串。如下:
with pdfplumber.open(filepath) as pdf:
# 读取pdf的页数
len_tablepdfs=len(pdf.pages)
# 获取第1页数据
page = pdf.pages[0]
# 只能读取一个表格的数据,顶部表格或者行数最多的一个表格
table_info = page.extract_table()
# 输出为该表格的每一行数据
for row in enumerate(table_info):
print(row)
# 输出该表格的第一行的数据
table_info_1 = table_info[0]
# 输出该表格的第一行中第一个单元格的数据
table_info_11 = table_info[0][0]