首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从S3存储桶python中提取文本

从S3存储桶python中提取文本
EN

Stack Overflow用户
提问于 2021-01-19 14:05:41
回答 1查看 360关注 0票数 0

我的亚马逊网络服务s3存储桶中有多个格式文件,如pdf、doc、rtf、odt、png,我需要从中提取文本。我已经设法获得了内容列表及其路径.now,具体取决于文件类型,我将使用不同的库从文件中提取文本。由于文件可能数以千计,我需要直接从s3中提取文本,而不是下载。

代码语言:javascript
复制
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

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

代码语言:javascript
复制
for path in filespath:
    ext=pathlib.Path(path).suffix
    if ext=='.pdf':
       pdf_file=PyPDF2.PdfFileReader(path)
       print(pdf_file.extractText())

但是我得到了一个错误

代码语言:javascript
复制
  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

请帮我拿一下领带。谢谢

EN

回答 1

Stack Overflow用户

发布于 2022-02-12 21:56:50

您可以尝试Justin Leto提供的boto3解决方案here。您仍然需要一种方法来读取/转换每种文件类型的文件流,但PDF的答案就在那里。

代码语言:javascript
复制
import boto3
s3 = boto3.resource('s3')
obj = s3.Object(bucket_name, itemname)
fs = obj.get()['Body'].read()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65786263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档