【问题标题】:How do I iterate through files in my directory so they can be opened/read using PyPDF2?如何遍历目录中的文件,以便可以使用 PyPDF2 打开/读取它们?
【发布时间】:2021-04-09 02:50:30
【问题描述】:

我正在开发一个用于工作的发票抓取工具,我已经成功编写了所有代码来使用 PyPDF2 抓取我需要的字段。但是,我无法弄清楚如何将此代码放入 for 循环中,以便遍历存储在我的目录中的所有发票。根据我使用的项目,可能有 1 到 250 多个文件。

我认为我可以使用“*.pdf”代替 pdf 名称,但它对我不起作用。我对 Python 比较陌生,之前没有使用过那么多循环,所以任何指导都将不胜感激!

import re

pdfFileObj = open(r'C:\Users\notylerhere\Desktop\Test Invoices\SampleInvoice.pdf', 'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
pageObj = pdfReader.getPage(0)

#Print all text on page
#print(pageObj.extractText())

#Grab Account Number Meter Number
accountNumber = re.compile(r'\d\d\d\d\d-\d\d\d\d\d')
meterNumber = re.compile(r'(\d\d\d\d\d\d\d\d)')
moAccountNumber = accountNumber.search(pageObj.extractText())
moMeterNumber = meterNumber.search(pageObj.extractText())
print('Account Number: '+moAccountNumber.group())
print('Meter Number: '+moMeterNumber.group(1))'''

Thanks very much! 

【问题讨论】:

    标签: python pdf pypdf2 pdf-scraping


    【解决方案1】:

    您想遍历您的目录并独立处理每个文件。

    有许多功能取决于您的用例。 os.walk 是一个很好的起点。

    例子:

    import os
    for root, directories, files in os.walk('.'):
      for file in files:
        if '.pdf' in file:
          openAndDoStuff(file)
    

    【讨论】:

      【解决方案2】:

      另一个选项是 glob:

      import glob
      
      files = glob.glob("c:/mydirectory/*.pdf")
      
      for file in files:
      
          (Do your processing of file here)
      
      

      您需要确保冒号之后的所有内容都正确缩进。

      【讨论】:

        【解决方案3】:
        import os
        import PyPDF2
        
        for el in os.listdir(os.getcwd()): 
            if el.endswith("pdf"): 
                pdf_reader = PyPDF2.PdfFileReader(open(os.getcwd() + "/" + el))
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-11-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多