Невозможно открыть файл PDF, написанный python - PullRequest
0 голосов
/ 06 августа 2020

В моем коде Python я получил файл как InMemoryUploadedFile, а затем я пытаюсь сохранить этот файл на диске. В нем говорится, что файл успешно сохранен, но когда я пытаюсь открыть этот файл, я получаю следующую ошибку:

Ошибка открытия файла

Вот фрагмент кода, который я пытаюсь использовать

with Path("check.pdf").open(mode="wb") as output_file:
    output_file.write(fileToParse.read())

Другой код, который я пробовал раньше, это:

outfd, filePath = tempfile.mkstemp(suffix='check.pdf', dir=os.getcwd())
with open(filePath, "wb") as dest:
    dest.write(fileToParse)
os.close(outfd)

В обоих случаях я получаю ту же ошибку. Я проверял разные сообщения, и даже здесь SO, первое решение работает для многих людей. Но я не знаю, почему он не сохраняет для меня нужный файл.

Тип файла fileToParse, который я получил, - <class 'django.core.files.uploadedfile.InMemoryUploadedFile'>, а fileToParse.read() возвращает <class 'bytes'>

Может ли кто-нибудь сказать мне, что я здесь делаю не так?

1 Ответ

0 голосов
/ 07 августа 2020

Я решил свою проблему с помощью этого ответа с небольшими изменениями. Вот код, который у меня работает.

import tempfile, os

 outfd, filePath = tempfile.mkstemp(suffix=fileToParse.name, dir=os.getcwd())
 with open(filePath, 'wb+') as destination:
    for chunk in fileToParse.chunks():
        destination.write(chunk)    
 os.close(outfd)
...