Как преобразовать формат моего файла .pdf в .txt в Django

Я работаю над веб-приложением на Django, где я хочу конвертировать файлы .pdf и .docx в .txt. Я написал функцию save(), где я хочу получить файл и затем преобразовать его в формат .txt. Но она выдает мне ошибку :

FileNotFoundError at /post/new/ [Errno 2] Нет такого файла или каталога: 'Python String.pdf'

мой models.py имеет вид :

from django.db import models
from django.contrib.auth.models import User
from django.urls import reverse
import PyPDF2
import os
# Create your models here.
class FileUpload(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, blank=True , null=True)
    file = models.FileField(upload_to='files')

    def save(self, *args, **kwargs):
        if self.file:
            pdffileobj = open(str(self.file.name), 'rb') # this is where i want to get the file but it give me the error 
            pdfreader = PyPDF2.PdfFileReader(pdffileobj)
            x = pdfreader.numPages
            pageobj = pdfreader.getPage(x + 1)
            text = pageobj.extractText()
            file1 = open(self.file.name.txt, "a")
            file1.writelines(text)
        super(FileUpload, self).save(*args, **kwargs)


    def get_absolute_url(self):
        return reverse('home')

Вывод - я хочу преобразовать .pdf в .txt перед сохранением. Спасибо

Я не работал с django, но этот код может помочь: использовать os для пути к файлу

os.path.join(os.path.dirname(os.path.dirname(__file__)),'filename')

источник : https://stackoverflow.com/a/24971898/13319197

Вернуться на верх