将名为“普通高等学校本科专业目录.pdf”的pdf文件转换成csv文件
文章目录
- 任务描述
- 2023年普通高等学校本科专业目录pdf链接
- 代码
- 代码解析
- 运行截图
任务描述
将名为“普通高等学校本科专业目录.pdf”的pdf文件转换成csv文件。这个pdf每页是个表格,表格有7列。
下面是pdf的第一页和第二页:
2023年普通高等学校本科专业目录pdf链接
链接: https://pan.baidu.com/s/14acDd_L7AtXgKyq_LAV5Rg?pwd=hmne 提取码: hmne
代码
可以使用 Python 的几个库来做到这一点。以下是一个示例代码,该代码使用了pdfplumber
来读取PDF文件,并使用pandas
来保存数据到csv文件。
注意:此代码假设pdf文件中的表格能够通过线条明确辨识,并且此方法可能不会对所有pdf文件有效,因为pdf的构造和内容可能会对解析产生影响。
import pdfplumber
import pandas as pddef convert_pdf_to_csv(pdf_file):# 打开pdf文件with pdfplumber.open(pdf_file) as pdf:# 初始化一个空的DataFrame用于存储所有页的数据df_all = pd.DataFrame()# 遍历每一页for page in pdf.pages:# 提取表格数据tables = page.extract_tables()for table in tables:# 将表格数据转化为DataFramedf = pd.DataFrame(table[1:], columns=table[0])df_all = pd.concat([df_all, df])# 保存为csv文件df_all.to_csv(pdf_file.replace('.pdf', '.csv'), index=False)# 使用函数
convert_pdf_to_csv("普通高等学校本科专业目录.pdf")
以上代码将遍历PDF中的每一页,并从每页中提取表格数据。这些数据将被合并并保存到一个CSV文件中。最后的CSV文件名将与输入的PDF文件名相同,只是扩展名变为了".csv"。
代码解析
这段代码是在Python环境下运行的首先,它需要导入两个库:pdfplumber
和pandas
。
import pdfplumber
:pdfplumber
是一个Python库,用于提取PDF中的文本、表格和元数据。import pandas as pd
:pandas
是一个Python数据分析库,这里主要用它来创建和操作DataFrame(一个二维标签化的数据结构),并将DataFrame保存为csv文件。
然后,定义了一个名为convert_pdf_to_csv
的函数,该函数接受一个参数pdf_file
,代表要转换的PDF文件名。
with pdfplumber.open(pdf_file) as pdf
: 使用pdfplumber
的open
函数打开PDF文件。with
语句用于包裹文件操作的上下文,确保文件在操作完毕后被正确关闭。df_all = pd.DataFrame()
: 初始化一个空的DataFrame,用于存储从每一页PDF中提取出来的表格数据。for page in pdf.pages
: 遍历PDF的每一页。tables = page.extract_tables()
: 使用pdfplumber
的extract_tables
函数从每一页中提取表格数据,这会返回一个列表,每个元素代表一页中的一个表格,表格本身也是一个列表,其中包含行数据。for table in tables
: 对于每个提取出来的表格。df = pd.DataFrame(table[1:], columns=table[0])
: 将表格数据转换为DataFrame。这里假设表格的第一行是列名,所以我们用table[0]
作为列名,剩余的table[1:]
作为数据。df_all = pd.concat([df_all, df])
: 将当前页的DataFrame(df
)与总的DataFrame(df_all
)合并。df_all.to_csv(pdf_file.replace('.pdf', '.csv'), index=False)
: 将最后的DataFrame保存为csv文件。文件名通过将原PDF文件名的’.pdf’部分替换为’.csv’得到。参数index=False
表示在保存csv时不包括索引。
最后一行是调用这个函数,将指定的PDF文件转换为CSV文件。
运行截图
将名为“普通高等学校本科专业目录.pdf”的pdf文件转换成csv文件相关推荐
- 普通高等学校本科专业目录(2020版)pdf下载
普通高等学校本科专业目录(2020版)pdf文件下载,下载连接在最下方! 下载地址:https://download.csdn.net/download/weixin_45481796/1858443 ...
- 2018普通本科专业目录计算机类,普通高等学校本科专业目录
普通高等学校本科专业目录(2012年) 本目录由教育部颁布.如有变动请以最新目录为准 说明: 一.<普通高等学校本科专业目录(2012年)>是高等教育工作的基本指导性文件之一.它规定专业划 ...
- bat脚本中获取上级目录_使用Python写一个可以监控Tomcat 运行的脚本,并且把.py文件转换成.exe文件...
使用Python写一个可以监控Tomcat 运行的脚本,并且把.py文件转换成.exe文件 文章来源与博主本人的CSDN博客,博客地址:https://blog.csdn.net/weixin_435 ...
- 全国普通高等学校本科专业目录(2004版)
详情:http://www.eol.cn/html/g/benkezy.shtml 转载于:https://www.cnblogs.com/liuzhengliang/archive/2009/03/ ...
- 2018普通本科专业目录计算机类,2018年教育部专业目录有哪些
有很多的同学都是非常的想知道,2018年教育部专业目录有哪些小编整理了相关信息,希望会对大家有所帮助! 学位授予和人才培养学科目录 01 哲学 0101 哲学 02 经济学 0201 理论经济学 02 ...
- 2018普通本科专业目录计算机类,教育部公布新版本科专业目录专业少了100多个...
过去在本科院校学表演.音乐.舞蹈艺术专业的学生拿的是"文学学士"学位证书,从2013年本科招生起,学艺术的学生可以被授予"艺术学士"了.记者近日获悉,教育部于近 ...
- 武生院计算机科学与技术专业好吗,武生院本科专业目录.doc
文档介绍: 武生院本科专业目录.docEvaluationWarning:ThedocumentwascreatedwithSpire..武生院本科专业目录序号专业代码专业名称修业年限学位授予门类专业 ...
- 教育部 计算机类专业代码,科普下2020教育部703个本科专业目录及专业代码
近日有关于科普下2020教育部703个本科专业目录及专业代码的问题受到了很多网友们的关注,大多数网友都想要知道科普下2020教育部703个本科专业目录及专业代码的具体情况,那么关于到科普下2020教育 ...
- 亲测好用的caj文件转换成带目录的文字版PDF文件工具
参考GitHub上caj2pdf/caj2pdf: Convert CAJ (China Academic Journals) files to PDF. 转换中国知网 CAJ 格式文献为 PDF.佛 ...
最新文章
- hdu1521 排列组合
- java 12-3 StringBuffer的添加和删除功能
- 显卡、显卡驱动、cuda 之间的关系是什么?
- 文献学习(part15)--Subspace Clustering via Good Neighbors
- 1105: 判断友好数对(函数专题)
- 内网安装nginx+keepalived环境配置及简单使用
- SAP License:ERP之路
- laravel redis_解析laravel之redis简单模块操作
- Ajax异步请求阻塞情况的解决办法(asp.net MVC Session锁的问题)
- 《YUI 3 Cookbook 中文版》
- matlab 打不开 slx,matlab2014a打不开仿真参数设置对话框怎么办
- ANSI字符集和Unicode字符集
- 关于解决Mac上keras数据集自动下载过慢问题(不要问我是怎么知道的,干就完了,奥利给!)
- 阿里巴巴发布AliGenie 语音开放平台 “智联网”战略又落一子
- Cairo 图形指南 (5) —— 形状与填充
- 目前使用计算机的内存和外存,简述计算机内存和外存区别及常用外存有哪些
- OU Graphics 建筑后期悬挂植物制作PS教程
- 【ES6】阮一峰promise
- 美国科技大佬们最爱看的书
- shell脚本及举例:依次创建10个目录在相应目录下创建10个文件,在相应文件下添加内容