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

avatar
Huma Qureshi
9 августа 2021 в 07:16
197
1
0

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

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

мои модели.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 перед его сохранением. Спасибо

Источник

Ответы (1)

avatar
H Sa
9 августа 2021 в 07:44
0

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

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

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

Huma Qureshi
9 августа 2021 в 07:54
0

Весь код такой же, но проблема в том, как прочитать файл с помощью django. Что этот код не читает файл

H Sa
9 августа 2021 в 07:57
0

@HumaQureshi, где вы определили self.file.name

H Sa
9 августа 2021 в 07:58
0

@HumaQureshi вы должны указать полный путь в открытом методе

Huma Qureshi
9 августа 2021 в 08:15
0

Я не хочу делать это статически. Я хочу сделать это с каждым файлом пользователя

H Sa
9 августа 2021 в 08:47
0

я нашел это, если это не сработало, я не могу думать иначе, извините coderhelper.com/a/24971898/13319197