美文网首页python
python读paper

python读paper

作者: 生信交流平台 | 来源:发表于2021-02-12 20:18 被阅读0次

    前面跟大家简单介绍过Python提取多个pdf首页合并输出,还有Python轻松处理Excel。有位粉丝留言python能不能从文献中提取特定的数字,希望能出一个教程,那么今天我们就来聊一聊如何用python读paper,提取特定的数字。

    我们先来捋一捋思路:

    1. 利用python打开pdf文件,提取其中的文本
    2. 将每一行的文字分成单个词语
    3. 利用正则表达式来匹配每一个词语,看是不是数字
    4. 将文本写入到word文档中,如果是数字用黄色高亮
    5. 保存word文档

    接下来我们用python代码来实现

    #加载pdf,word和正则表达式模块
    import PyPDF2
    import docx
    from docx.enum.text import WD_COLOR_INDEX
    import re
    
    #打开要读的pdf文件
    pdfFileObj = open('meetingminutes.pdf', 'rb')
    #生成pdf对象
    pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
    
    #获取pdf文件中的文本信息
    lines = []
    for i in range(pdfReader.numPages):
        pageObj = pdfReader.getPage(i)
        text = pageObj.extractText()
        lines += text.split("\n")
    
    #匹配所有数字的正则表达式
    regx = re.compile(r'[-+]?([0-9]+(\.[0-9]*)?|\.[0-9]+)([eE][-+]?[0-9]+)?')
    #新建一个word对象,用来保存pdf文件的内容
    doc = docx.Document()
    #循环处理pdf文件中每一行文本
    for line in lines:
        #在word文档中添加段落
        para = doc.add_paragraph('')
        #对pdf文件中每一行文字,分成单词来处理
        words = line.split(" ")
        for word in words:
            #在word文档的每一个段落中再添加run
            run = para.add_run(word+" ")
            #如果单词是数字就用黄色来高亮显示
            mo = regx.findall(word)
            if len(mo) > 0:
                run.font.highlight_color = WD_COLOR_INDEX.YELLOW
    #最后保存word文档
    doc.save('highlighted_pdf_number.docx')
    
    

    关于python处理word涉及到的两个概念paragraph和run在《python让繁琐工作自动化》这本书中有详细介绍,大家感兴趣可以下去仔细读一下。

    下图展示的试pdf文件中的本分内容

    下图展示的是高亮之后的word文档。这里的格式可能和原来pdf文件的格式不太一样,但是内容是一样的。

    这个任务中用到的代码均出自于我前面提到《python让繁琐工作自动化》这本书。为方便大家交流学习,小编为大家准备了本书的pdf版本,参考python让繁琐工作自动化就可以获取。如果喜欢纸质版也可以购买一本,当做工具书,需要的时候随手翻一下。

    Python编程快速上手 让繁琐工作自动化(异步图书出品)

    参考资料:

    1. Python提取多个pdf首页合并输出

    2. python让繁琐工作自动化

    3. python读paper

    相关文章

      网友评论

        本文标题:python读paper

        本文链接:https://www.haomeiwen.com/subject/dlrjxltx.html