从S3 bucket python中提取pdf文件中的文本

2024-05-17 10:12:49 发布

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

我的AWS s3存储桶中有多个格式文件,如pdf、doc、rtf、odt、png,我需要从中提取文本。 我已经成功地获取了目录及其路径。现在,根据文件类型,我将使用不同的库从文件中提取文本。由于文件可能有数千个,我需要直接从s3中提取文本,而不是下载

filespath=['https://abc.s3.ap-south-1.amazonaws.com/DocumentOnPATest', 'https://abc.s3.ap-south-1.amazonaws.com/IndustryReport2019.pdf', 'https://abc.s3.ap-south-1.amazonaws.com/receipt.png', 'https://abc.s3.ap-south-1.amazonaws.com/sample.rtf', 'https://abc.s3.ap-south-1.amazonaws.com/sample1.odt']

bucketname =abc

我尝试了一些东西,但它给了我错误

for path in filespath:
    ext=pathlib.Path(path).suffix
    if ext=='.pdf':
       pdf_file=PyPDF2.PdfFileReader(path)
       print(pdf_file.extractText())

但是我犯了个错误

  File "F:\Projects\FileExtractor\fileextracts3.py", line 28, in <module>
    pdf_file=PyPDF2.PdfFileReader(path)

  File "C:\ProgramData\Anaconda3\lib\site-packages\PyPDF2\pdf.py", line 1081, in __init__
    fileobj = open(stream, 'rb')

OSError: [Errno 22] Invalid argument: 'https://abc.s3.ap-south-1.amazonaws.com/IndustryReport2019.pdf

请帮我接电话。多谢各位


Tags: pathinhttps文本coms3pdfodt
1条回答
网友
1楼 · 发布于 2024-05-17 10:12:49

PyPDF2不支持直接从s3读取。您需要首先在本地下载它们

或者您可以尝试使用[AWS Lambda functions][1]直接处理来自s3存储桶的文件。

相关问题 更多 >