首页 > 解决方案 > 如何在 Blob 触发器 Azure 函数中使用 Python 打开 Blob 触发文件

问题描述

我正在尝试使用 PyPDF2 从 blob 触发的 PDF 文件中提取文本。但是,我收到“UnsupportedOperation:seek”错误。

这是我的代码:

import logging

import azure.functions as func

from io import StringIO

import re

import os

import PyPDF2

def main(myblob: func.InputStream,blobout: func.Out[str],context: func.Context):
logging.info(f"--- Python blob trigger function processed blob \n"
             f"----- Name: {myblob.name}\n"
             f"----- Blob Size: {myblob.length} bytes")


pdfblob = PyPDF2.PdfFileReader(myblob)

这是错误:

System.Private.CoreLib:执行函数时出现异常:Functions.Assessment。System.Private.CoreLib:结果:失败异常:UnsupportedOperation:seek

我对 azure 函数比较陌生,非常感谢您的帮助。

谢谢你。

标签: pythonazure-functions

解决方案


我用 blob 输入进行测试,它可以被复制。下面是我的解决方案,创建一个BytesIO流并存储 blob 输入流。

    blob_bytes = inputblob.read()
    blob_to_read = BytesIO(blob_bytes)
    fileReader = PyPDF2.PdfFileReader(blob_to_read)

    logging.info(fileReader.numPages) 

在此处输入图像描述


推荐阅读