我正在尝试使用 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 运行它时,它会显示上述错误。