Python脚本在目录中迭代PDF并找到匹配的行

时间:2017-06-14 19:23:11

标签: python for-loop pypdf2

目前,我通过电子邮件将我的所有报告作为pdf发送给我。我所做的是将outlook设置为每天自动将这些文件下载到某个目录。有时这些pdf中没有任何数据,只包含“没有与选择标准匹配的数据”。我想创建一个python程序,遍历该目录中的每个pdf文件,打开它并查找这些单词,如果它们包含该短语,则删除该特定的pdf。如果他们不这样做。通过reddit的帮助我拼凑了下面的代码:

import PyPDF2
import os

directory = 'C:\\Users\\jmoorehead\\Desktop\\A2IReports\\'
for file in os.listdir(directory):
    if not file.endswith(".pdf"):
        continue
    with open("{}/{}".format(directory,file), 'rb') as pdfFileObj:
        pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
        pageObj = pdfReader.getPage(0)
        if "There is no data to present that matches the selection criteria" in pageObj.extractText():
            print("{} was removed.".format(file))
            os.remove(file)

我已经测试了3个包含匹配短语的文件。无论文件如何命名或它将失败的顺序。我在名为3.pdf的目录中用一个文件测试了它。下面是错误代码获取。

  

FileNotFoundError:[WinError 2]系统找不到指定的文件:>'3.pdf'

这会大大减少我的工作量,对我来说是一个很好的学习榜样。欢迎所有帮助/批评。

1 个答案:

答案 0 :(得分:1)

见下文:

      <script type="text/javascript">
        function minmax(value, min, max)
        {
            if(parseInt(value) > max)
                return max;
            else if (parseInt(value) < min)
                return min;
            else return value;
        }
    </script>
    <form>
        <input type="range" name="amountRange" id ="amountRange" min="<?php echo  $minRaise ?>" max="<?php echo $maxRaise ?>"
               value="<?php echo  $minRaise ?>" oninput="this.form.amountInput.value=this.value" />
        <input type="number" name="amountInput" min="<?php  echo $minRaise ?>" max="<?php echo $maxRaise ?>" value="<?php  echo $minRaise ?>"
               onkeyup="this.value = minmax(this.value, <?php  echo $minRaise ?>, <?php echo $maxRaise ?>)" oninput="this.form.amountRange.value=this.value" />
    </form>