在flashdri上使用pyInstaller之后为PyPDF2指定文件路径

2024-06-17 15:20:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一个python脚本,从pdf文档中获取帐号,它在本地运行得很好。我使用pyinstaller将脚本提取到可执行文件中,并将其保存到闪存驱动器中。我把pdf文档移到了我认为是CWD的地方,但是当我尝试运行它时,我的终端告诉我找不到我要打开的pdf文件。在

最后,我希望我的客户机能够放入闪存驱动器,将最新版本的pdf移到同一目录下,并运行脚本。在如何指定PyPDF2的文件路径时,我需要一个正确的方向。这是我目前为止的代码。在

def getDataFromPdf():
acctNumberRegex = re.compile(r'\d\d\d\d\d-\d\d\d-\d\d\d\d')
pdfFile = open('records.pdf', 'rb')
reader = PyPDF2.PdfFileReader(pdfFile)
for pageNum in range(0,10):
    page = reader.getPage(pageNum).extractText()
    accounts = acctNumberRegex.findall(page)
    for acct in accounts:
        if acct not in results:
            results.append(acct)
print(len(results)) 

谢谢!在


Tags: 文件in文档脚本forpdfpageresults
2条回答

通过r/learnpython解决方案

SCRIPT_DIR = Path(sys.executable).parent

def getDataFromPdf():
pdf_file = SCRIPT_DIR / 'records.pdf'
print(pdf_file.resolve())
with open(pdf_file.resolve(),'rb') as records:
    acctNumberRegex = re.compile(r'\d\d\d\d\d-\d\d\d-\d\d\d\d')
    reader = PyPDF2.PdfFileReader(records)
    for pageNum in range(0,reader.numPages):
        page = reader.getPage(pageNum).extractText()
        accounts = acctNumberRegex.findall(page)
        for acct in accounts:
            if acct not in results:
                results.append(acct)
    print(str(len(results)) + " account numbers pulled from PDF")

可以将文件路径作为参数传递到函数中。在

所以:

def getDataFromPdf(filePath):
    acctNumberRegex = re.compile(r'\d\d\d\d\d-\d\d\d-\d\d\d\d')
    pdfFile = open(filePath + 'records.pdf', 'rb')
    reader = PyPDF2.PdfFileReader(pdfFile)
    for pageNum in range(0,10):
        page = reader.getPage(pageNum).extractText()
        accounts = acctNumberRegex.findall(page)
    for acct in accounts:
        if acct not in results:
          results.append(acct)
    print(len(results)) 

相关问题 更多 >