1

我正在尝试使用 Python Flask 集成 Camelot 以进行 PDF 提取。pdf 是从 S3 Bucket 输入的。

当我只使用 s3 和 camelot 运行代码时,它会返回从 S3 存储桶 pdf 中提取的数据。但是当我使用烧瓶执行相同的代码时,它会说,

File "C:\Users\shriy\Anaconda3\Lib\site-packages\camelot\handlers.py", line 74, in _get_pages
with open(self.filepath, "rb") as f:

FileNotFoundError:[Errno 2] 没有这样的文件或目录:'insurance.pdf'

请帮我找到解决这个问题的方法。

Input is:  **'s3_object_url.pdf Invoice.'**
@application.route('/',methods=['POST'])
def extract():
if request.method == 'POST':
    a = "SOFTHQ"
    dataa = request.data
    dataa = str(dataa)
    dataa = dataa.split(" ",1)
    s = dataa[0]
    if s.startswith('b'):
        s = s.split("b'",1)
        s = s[1]
    t = dataa[1]
    t = t.rsplit(".",1)
    t = t[0]
    url = str(s)
    form_type = str(t)
    if form_type != a:
        msg = "Invalid Form"
    else : 
       path = url.split("//",1)
       path = path[1]
       path = str(path)
       path = path.split(".",1)
       bucket_name = path[0]
       path = str(path)
       path = path.split("/",1)
       path = path[1]
       path = str(path)  
       path = path.split("'",1)
       path = path[0]
       file_namee = path
       bucketName = bucket_name
       tables = camelot.read_pdf(file_namee, pages = "all",password = 'None',multiple_tables = True, backend= 'poppler',line_scale = 80,shift_text=[''])
       data = {};
       dd = tables[0].df[12]
       dat = tables[0].df.iloc[2,12]
       dt = {"Date" : dat};
       data.update(dt)
       
return data
         
if __name__ == "__main__":

application. run(host='0.0.0.0', debug=True, port= '5000')

相同的代码无需烧瓶即可工作。也就是说,它正在访问 s3 存储桶并访问 pdf。但是当我用 Flask 运行它时,它会显示上述错误。

4

0 回答 0