需求:将pdf中的单词,通过正则表达式提取,保存到excel。将excel文件另存为.csv格式,导入到anki制成卡牌学习。
目录
全部代码
代码效果
提前准备
pdf文件与内容导入
pdf文件导入
pdf内容导入
正则匹配|内容筛选
将结果存入Excel
全部代码
代码效果
处理的pdf内容:
处理结果:
提前准备
使用的软件(IDE)是Pycharm
系统为Windows11
pdfplumber的安装:pip install pdfplumber
pdf文件与内容导入
pdf文件导入
代码中,我使用的了绝对路径。因为pdf共有18个,所以我需要for循环遍历,将文件的绝对地址通过append函数压入一个列表。
pdf内容导入
将pdf的全部内容压入一个列表后,通过.join函数将列表遍历拼接转为字符串类型,为接下来正则匹配做准备。
另外,如果pdf中的内容有图片或表格,那你就不能单纯的使用page.extract_text()。例如,处理pdf表格,需要使用page.extract_table()。其他具体用法请参考其它更专业的博客文章。
正则匹配|内容筛选
re.S是正则的一种匹配模式,作用是防止匹配的内容中第一个就是换行符(空格、换行)而导致返回空列表。(注:正则表达式中的“.”能匹配任意字符,但换行符除外。当时没少因为这个知识点吃苦头)
改:(d+).* 中的+是防止匹配到空格。*匹配目标出现0次或多次;+匹配目标出现1次或多次。
将结果存入Excel
这里使用的是openpyxl,具体的使用方法请参考相应的文档。
zip函数能同时遍历三个及以上的列表,并一一对应的形成新列表。注:请保证列表的长度一致,不然会发生一些意外。
另,生成的xlsx会保存在你的代码根目录下,如果要保存到其他地方,可以使用with方法。
总结
其实,代码写到这里主体的功能基本实现了,但是还有很大优化空间。例如,将单词词性匹配出来,可这对我来说有一定难度,因为pdf里有很多一词多意和一个单词既能是名词又能是动词的情况。又例如将中文释义和助记方法分别匹配,等等。最后只要将excel文件另存为csv格式后导入anki(bilibili上有人讲解过)即可,那么请看看我的最终成品吧。(虽然细节处理的不好)
2022-11-15 22-03-27_x264
文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览215105 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!