我正在尝试拆分一个PDF文件,该文件作为对此Flask API的post请求。我正在使用PyPDF2来处理pdf文件,当我试图发布新拆分的pdf文件时,我得到了这个错误:"IOError: File not open for reading“。我尝试在发布之前再次打开它,但这导致了另一种类型的错误。
from flask import render_template, request
from app import app
from PyPDF2 import PdfFileWriter, PdfFileReader
import requests
@app.route('/')
def start():
return render_template('home.html')
#upload-route
@app.route('/upload', methods = ['POST'])
def upload():
pdf_data = None
split_pages = []
if 'pdf' in request.files:
incoming_pdf = request.files['pdf']
pdf_data = PdfFileReader(incoming_pdf, 'rb')
for i in range(pdf_data.numPages):
output = PdfFileWriter()
output.addPage(pdf_data.getPage(i))
with open("document-page%s.pdf" % i, "wb").read() as outputStream:
##new_page = output.write(outputStream)
try:
split_pages.append(output)
print('Created: {}'.format("document-page%s.pdf" % i))
files = {'userfile': outputStream }
upload_url ='*URL IM POSTING TO*'
auth_upload={
*AUTH KEYS*
}
r=requests.post(url=upload_url, files=files,data=auth_upload)
finally:
outputStream.close()
else:
return "please upload a file to process"我知道这可能是一个非常基本的问题,但我在这个问题上花了太多的时间,我不再清醒地思考。
发布于 2020-01-14 01:17:44
我只是看了一下你的代码,然后呢?
from PyPDF2 import PdfFileWriter, PdfFileReader
with open('./reklamacja.pdf', 'rb') as my_pdf:
pdf_data = PdfFileReader(my_pdf)
for i in range(pdf_data.numPages):
output = PdfFileWriter()
# output.addPage(pdf_data.getPage(i))
output.insertPage(pdf_data.getPage(i))
filename = "document-page%s.pdf" % i
with open(filename, "wb") as outputStream:
output.write(outputStream)
with open(filename, 'rb') as file_to_send:
r = requests.post('http://someurl.bin', files={'myname': file_to_send})
{ Some other code...}将它构建到你的flask代码中,它应该可以工作。对我来说,你只是在'try‘块中有点过于复杂了:)希望这能解决你的问题。
https://stackoverflow.com/questions/59715365
复制相似问题