#python #multithreading #pypdf2
Вопрос:
Я работаю над PDF-файлом большого размера около 400-500 МБ. Во-первых, я запустил его в одном потоке, и код работал, но мне потребовалось полчаса, чтобы закончить. Затем я решил использовать потоки и закодировать его, но после этого pypdf2 ввел меня в заблуждение.
Ошибка:
File "/usr/local/lib/python3.9/dist-packages/PyPDF2/pdf.py", line 1696, in read
raise utils.PdfReadError("EOF marker not found")
PyPDF2.utils.PdfReadError: EOF marker not found
Код:
if __name__ == '__main__':
db = MySQLdb.connect(host="hostIP", user="username", passwd="password", db="db_name", use_unicode=True, charset='utf8')
c = db.cursor()
start = time.time()
pdfAdi = "381_Sayili_Resmi_Marka_Bülteni.pdf"
pdfYolu = "pdf/" pdfAdi
pdfFileObj = open(pdfYolu, 'rb')
# print(pdfFileObj)
pdfReader = PdfFileReader(pdfFileObj)
output = ''
for i in range(1, pdfReader.getNumPages()):
# for i in range(34, 38):
pageObj = pdfReader.getPage(i)
output = pageObj.extractText()
output = output.replace('þ', 'ş')
output = output.replace('Þ', 'Ş')
output = output.replace('ý', 'ı')
output = output.replace('ð', 'ğ')
output = output.replace('Ð', 'Ğ')
output = output.replace('Ý', 'İ')
output = output.replace('Ý', 'İ')
pdfFileObj.close()